• ベストアンサー

2曲同時再生するにはどうしたらいい?

PlaySoundを使用すると1曲しか再生できませんが 2曲同時再生するにはサウンドミックスしかないんでしょうか? セカンダリバッファの内容をミックスしてプライマリバッファを再生するしか 方法は無いのでしょうか? もっと簡単な同時再生のやりかたをご存知でしたらどなたか教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
noname#16581
noname#16581
回答No.1

私もあまり詳しくなく、前スレの回答でMCIを使えばよいと言われましたよね? 簡単なやり方というか、サンプルを載せておきます。 後はご自分でいじってください。 ///////////////////////////////////////////// #include <windows.h> #include<Mmsystem.h> #pragma comment(lib,"Winmm.lib") #include<stdio.h> MCIDEVICEID playSound(char *strFile); void stopSound(MCIDEVICEID stopID); int main() { char *strFile; MCIDEVICEID playID[2]; strFile="C:\\\****1.WAV"; playID[0]=playSound(strFile); strFile="C:\\****2.WAV"; playID[1]=playSound(strFile); getchar(); stopSound(playID[0]); getchar(); stopSound(playID[1]); getchar(); return 0; } MCIDEVICEID playSound(char *strFile) { static MCI_OPEN_PARMS mop; mop.dwCallback = (DWORD)NULL; mop.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO; mop.lpstrElementName = strFile; mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,(DWORD)&mop); mciSendCommand(mop.wDeviceID , MCI_PLAY , 0 , 0); return mop.wDeviceID; } void stopSound(MCIDEVICEID stopID) { mciSendCommand(stopID , MCI_STOP , 0 , 0); return; } /////////////////////////////////////////////

dra2jp
質問者

お礼

#include "DxLib.h"するとできました! ありがとうございます。