none
xWMA形式ファイルの部分ループ再生

    質問

  • お世話になります。

    XAudio2を使用し、xWMA形式ファイルの再生プログラムを作成しています。
    部分ループ再生をする際に、wave形式ファイルを再生する際は、XAUDIO2_BUFFER構造体の
    LoopBegin、LoopLength、LoopCountに値を設定し、SubmitSourceBuffer()すると思いますが、
    xWMA形式ファイルで同じように値を設定すると下記のエラーが発生してしまいます。
    xWMA形式ファイルは部分ループ再生に対応していないのでしょうか?
    それとも設定値がまずいのでしょうか?

    上記についてご存知の方、または参考サイトがある場合はご教示頂きたいです。

    よろしくお願いします。

    ■LoopBeginに値を設定した場合のエラー
    XAUDIO2: ERROR: Loop region must begin at start of audio buffer
    XAUDIO2: ERROR: Invalid WMA source buffer

    ■LoopLengthに値を設定した場合のエラー
    XAUDIO2: ERROR: Loop region must cover the entire audio buffer
    XAUDIO2: ERROR: Invalid WMA source buffer

    ■wave形式ファイルの際の設定値
    UINT32 beginS = 5;
    UINT32 lengthS = 10;
    XAUDIO2_BUFFER bufinfo = { 0 };
    bufinfo.LoopBegin = pwfx.Format.nSamplesPerSec * beginS;
    bufinfo.LoopLength = pwfx.Format.nSamplesPerSec * lengthS;
    bufinfo.LoopCount = XAUDIO2_LOOP_INFINITE;

    ■開発環境
    Windows 10 pro(1709 16299.192)
    Visual Studio 2017 pro
    デスクトップアプリ開発
    c++
    DirectX(June 2010)
    WindowsSDK 10.0.16299.0
    XAudio2 v2.7

    2018年3月2日 11:27