0

初めて再生ボタンをクリックすると、すべて正常に動作しますが、次回は次の行でエラーが発生します。

    waveOutDevice.Init(mainOutputStream);

エラーの詳細については、スクリーンショットを参照してください。以下は私のコードのセクションです:

    private void Play()
    {
        string audioFile = "temp.mp3";
        try
        {
            if (mainOutputStream != null)
                mainOutputStream = null;
            mainOutputStream = CreateInputStream(audioFile);
        }
        catch (Exception exc)
        {
            MessageBox.Show(exc.Message);
        }
        if (mainOutputStream != null)
        {
            waveOutDevice.Init(mainOutputStream);
            waveOutDevice.Play();
        }
        else
        {
            return;
        }

    }

エラー コード: -2004287486

TargetSite は: {Void ThrowExceptionForHRInternal(Int32, IntPtr)}

これはすべて私の頭を悩ませているので、エラーサイトを指摘し、少しの説明(可能であれば)と、もちろんこの状況の回避策を教えてください. ありがとう。

エラーのスクリーンショット


アップデート:

返信ありがとうございます。それも試してみましたが、それでも同じ問題です。ファイルは再び再生されますが、そのエラー メッセージは少し遅れて表示され続けます。アプリケーション全体を閉じてから数秒後にエラー メッセージが表示されることがあります。そして、ファイルが再生されるたびに、おそらく1回ずつ、何度も表示されます。

4

1 に答える 1

1

エラー コードは 0x88890002 ( AUDCLNT_E_ALREADY_INITIALIZED ) で、古い出力デバイスが適切に破棄されていないことを示しています。必ず waveOutDevice を破棄し、次の再生のために新しいデバイスを作成してください。

于 2011-09-15T12:36:58.313 に答える