DirectMusic 系の関数を利用して、.wav ファイルの演奏合計時間を取得したいのです。 色々と調べてみた結果、IDirectMusicSegment8 クラスの GetLength() 関数が怪しそうな気がします。 引数に NULL を指定してもうまくいきませんでした。 何か判る事がありましたら、助言を下さい。
OS: Windows XP Home Edition
開発環境: Microsoft Visual C++ 6.0
Microsoft の MSDN を調べてみても難解だったので、mciSendString API
を用いて長さを求める事で演奏合計時間を秒単位で取得する事ができました。 また判らない事があればよろしくお願いします。 お騒がせしました。
> Microsoft の MSDN を調べてみても難解だったので
ひょっとして、Visual C++ 6.0付属のHELP(英語)で調べたんですか?
↓の下の方から、DirectXの日本語ヘルプがGetできます。
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
「WAV サウンドの長さの計算」の項に、
DirectSoundのCWaveFileクラスを使って演奏時間の長さを求めるサンプルが
あります。
IDirectMusicSegment8::GetLength()はWaveファイルに対しては使えない
ようです。
ツイート | ![]() |