11

サウンドの再生中にループを開始/停止する方法が必要です。複数のサウンドを一緒に再生する最善の方法は、XNA を使用することです。そこで、オーディオ クリップを含むオブジェクトSoundEffectInstanceから開始を作成しました。SoundEffect問題は、このクリップの状態を「ループ」から「非ループ」に、またはその逆に変更するボタンがあることです。

問題は次のとおりです。最初の再生の前にループを設定する必要があるという例外がスローされます。SoundEngineInstanceそれで、「非ループ」から「ループ」に切り替えながら、音が止まるのを待ってから、設定IsLooped = trueを作り直して、もう一度開始できると思いました。これは機能しますが、多少の遅延があり、これによりタイミングが失われるため、まったく役に立ちません。

私が探しているのは、サウンドの再生中にループを設定または設定解除する方法であり、遅延はありません。

編集:

私は 2 つSoundEngineInstanceの を使用してみました.1 つはループされ、もう 1 つはループされていません。問題は、ループしていないクリップが最初の再生後に停止することです。そのため、2 回ループしてからループしない状態にすると、ループしていないクリップがすでに終了しているため、サウンドが再生されません。

提案?

4

2 に答える 2

2

私は同じ問題を抱えていて、同じオーディオ クリップを持つ 2 つのインスタンスを使用して解決しました。私は2つを切り替えました。それはおそらく最善の解決策ではないかもしれませんが、私にとってはうまくいきました。

于 2013-02-05T06:08:29.627 に答える
0

http://msdn.microsoft.com/en-us/library/dd940203(v=xnagamestudio.31).aspxから:

  1. 「方法:サウンドを再生する」に示されている方法を使用して、SoundEffectを宣言します。

  2. SoundEffectInstanceを宣言し、SoundEffect.CreateInstanceの戻り値に設定します。

  3. SoundEffectInstance.IsLoopedをtrueに設定します。

  4. SoundEffectInstance.Playを呼び出して、ループ音を再生します。

ループさせたくない場合は、IsLoopedをfalseに設定できますが、最後まで再生するだけです。

于 2013-02-06T14:39:08.827 に答える