3

cocos2dx の SimpleAudioEngine を使用しています。(新しい AudioEngine ではなく、それを使用する必要があります)。

SimpleAudioEngine for Win32 にピッチ関数を実装しようとしましたが、行き詰まりました。

cocos2dx は、SimpleAudioEngine が使用されている場合、オーディオ再生に MCI を使用します。(MCI ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd742874(v=vs.85).aspx )。

ピッチ機能の実装方法がわかりません。setVolume もありますが、その実装も空です (cocos2dx の人は実装していないと思います)。cocos2d-x v.3.3 c++ を使用しています。再生速度を変更するために使用できる dwSpeed 変数があることがわかりましたが、その操作方法がわかりません。

これが私がしたことです:

void MciPlayer::SetSpeed(DWORD dwSpeed)
{
    tagMCI_VD_PLAY_PARMS mciSetParms;
   DWORD dwFlags;
   if (!_dev)
      return ;
   mciSetParms.dwSpeed = dwSpeed;

   mciSendCommand(_dev, MCI_PLAY, MCI_FROM|MCI_NOTIFY,
                                  reinterpret_cast<DWORD_PTR> (&mciSetParms));  
}

MciPlayer の cpp ファイルは次のとおりです: http://pastebin.com/BNyC7FEK

この特定のケースでピッチを実装する機会はありますか? それとも、MCI はこれをサポートしていませんか? MCIオタクがいる場合は、助けてください!

それは私が推測するかなり挑戦的な仕事です。

御時間ありがとうございます!

クリス

4

0 に答える 0