2016-05-24 19 views
2

私は最近xAudioを掘り下げています。私は必要な答えを見つけることができませんでした。xAudio MasterVoice進捗状況を取得

{ あなたの時間を無駄にしない - 私は、マスターの声現在の進行状況 を取得する方法を見つける必要がある}

事は、ある - SourceVoiceは、それが状態 (https://msdn.microsoft.com/en-us/library/windows/desktop/hh405047(v=vs.85).aspx)だ与えるための方法を提供し

したがって、このメソッドを使用すると、音声が再生されているときにXAUDIO2_VOICE_STATEに現在の位置を計算させることができます。

しかし、xAudio SourceVoiceは本当に最終的なエンティティではありません(またはそれは?!)。オーディオデバイスに達する前にすべてがマスタリングボイスに入ります。

IXAudio2MasteringVoiceインターフェイスは、GetState()のようなものを私たちに提供しません。

私の質問は、 - 私はいくつかの声を同期させる必要がある場合どのように私の現在の進歩を得るかです。前もって感謝します!

答えて

1

'マスターボイス'は出力デバイス(実際にはシステムレベルのミックスを行い、その結果を実際のハードウェア再生バッファに格納するWASAPIチェーンの始まりです)を表します。したがって、「進歩」または「標本の位置」の概念はありません。エフェクトチェーンを付けることはできますが、それはそれです。

ボイスを同期させる最も良い方法は、グループとして個々のソース音声を開始または停止するなど、複数のアクションがすべて同じフレームで処理されるようにする「操作セット」を使用することです。 MSDN: XAudio2 Operation Setsを参照してください。

送信元の音声にIXAudio2VoiceCallbackを添付して、送信された作業の進捗状況を通知することもできます。 MSDN: XAudio2 Callbacks

関連する問題