オーディオサンプルレートの変更
皆様のお力をお貸しください。
【環境】
OS:Windows XP
開発環境:VB6.0
現在WAVファイル(16bit,22KHz)のファイルを
16bit 8KHzに変換するものを上記環境にて作成使用としていますが
ネット上を検索しても該当するような情報を検索できませんでしたので質問させていただきます。
以下のような手順にてWAVファイルを再生させることはできましたが
サンプルレートの変更を行うことはできませんでした。
Call mciSendString("open " + 変換元ファイル名称 + " alias f", "", 0, 0)
Call mciSendString("play f", "", 0, 0)
Call mciSendString("set f bitspersample 16", "", 0, 0)
Call mciSendString("set f samplespersec 8000", "", 0, 0)
Call mciSendString("save f " & 変換後ファイル名称, "", 0, 0)
Call mciSendString("close f", "", 0, 0)
このような単純なことではなく、もっと複雑な処理を検討しないと
ならないものでしょうか。
別な方法にてできるものがありましたら、教えてください。
よろしくお願いいたします。
お礼
遅い時間に、ご対応頂き、本当に、どうもありがとうございます。 fresh_homepieさんのご説明を元に作成しましたところ、 mciSendCommandを使用して、WAVファイルの音量調節をおこなう事ができました。 作成しましたサンプルソースは以下の通りです。 理屈等は、分かりませんが、他の方のためにも、初心者レベルで、まとめておきます。 static MCI_OPEN_PARMS mci_open = {0}; static MCI_DGV_SETAUDIO_PARMS mci_vol = {0}; static MCI_PLAY_PARMS mci_play = {0}; // デバイスオープン mci_open.lpstrDeviceType = _T("mpegvideo"); // (※) mci_open.lpstrElementName = (LPWSTR)L"sample.wav"; mciSendCommand( NULL, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD) &mci_open ); // 音量調節 mci_vol.dwItem = MCI_DGV_SETAUDIO_VOLUME ; mci_vol.dwValue = 10; // 0~1000で調節可能 mciSendCommand( mci_open.wDeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_ITEM | MCI_DGV_SETAUDIO_VALUE, (DWORD) &mci_vol ); // WAVファイル再生 mciSendCommand( mci_open.wDeviceID, MCI_PLAY, MCI_WAIT, (DWORD) &mci_play ); (※)"waveaudio"としてオープンすると、 何故か、音量調節が反映されません。 "mpegvideo"としてオープンすると、 音量調節可能でした。 理由は、わかりません。