0

サウンドエフェクトを使用してバイト配列からサウンドを再生し、すべて問題ありませんが、Soundeffect で stop() と呼ばれるメソッドがないため、サウンドの再生を停止できません。どうすれば停止できますか?

コード:

private void playFile(byte[] file)
    {
        try
        {

            if (file == null || file.Length == 0) return;


            SoundEffect se = new SoundEffect(file, microphone.SampleRate, AudioChannels.Mono);
            SoundEffect.MasterVolume = 0.7f;
            if (stop != 1)
            {
                FrameworkDispatcher.Update();
                se.Play();
            }
            else
            {
                //Here should stop, how !
            }
        }
        catch (Exception ee)
        {
            MessageBox.Show(ee.Message);
        }
    }
4

3 に答える 3

0

SoundEffectInstance を使ってみる

効果音インスタンス

ここに解決策へのリンクがあります

効果音インスタンス

以上のSoundEffectInstance実装IDisposeableなので、効果音dispose()だけでなくメソッドもあります。stop()

于 2013-09-24T15:00:28.403 に答える
0

オブジェクトを呼び出し.Dispose()てみましたか? ドキュメントSoundEffectによると、

SoundEffect オブジェクトが破棄されると、その SoundEffect によって以前に作成されたすべての SoundEffectInstance オブジェクトは再生を停止し、無効になります。

さらに、XNA Game Studio 4.0 で開発している場合を除き、 Microsoft は代わりに使用することをお勧めします。MediaElementそれがあなたに当てはまる場合は、再生、一時停止、および停止機能MediaElementを備えたものを使用することを検討してください。

于 2013-09-24T14:49:48.380 に答える