Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 再次播放时NAudio生成错误(第二次及以后)_C#_.net_Winforms_Com_Naudio - Fatal编程技术网

C# 再次播放时NAudio生成错误(第二次及以后)

C# 再次播放时NAudio生成错误(第二次及以后),c#,.net,winforms,com,naudio,C#,.net,Winforms,Com,Naudio,第一次单击“播放”按钮时,一切正常,但下一次它在此行中生成错误时: waveOutDevice.Init(mainOutputStream); 有关错误的详细信息,请参见屏幕截图。以下是我的代码部分: private void Play() { string audioFile = "temp.mp3"; try { if (mainOutputStream != null)

第一次单击“播放”按钮时,一切正常,但下一次它在此行中生成错误时:

    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

目标站点是:{Void ThrowExceptionForHRInternal(Int32,IntPtr)}

所有这些都超出了我的理解范围,所以请帮助我指出错误的位置,并进行一些解释(如果可能的话),当然还有针对这种情况的解决方法。谢谢


更新:


谢谢你的回复。我也试过了,但还是一样的问题。该文件将再次播放,但延迟一段时间后该错误消息仍会出现。有时,整个应用程序关闭几秒钟后会出现错误消息。而且它出现了很多次,一次又一次,可能每次播放文件时都会出现一次。

错误代码为0x8889002(),这表明旧的输出设备没有正确处理。确保处置WaveOut设备,并为下一次播放创建一个新设备