2014-01-26 49 views
0

這聽起來像一個簡單的問題,但我無法弄清楚。使用Naudio停止wav文件

我正在播放使用Naudio的wav文件(我正在用文件的路徑啓動WaveOut對象)。

暫停播放工作正常

的問題 - 當我嘗試停止(暫停並返回文件的開頭) - 它只是暫停文件(如暫停)。

這裏是我的代碼:

public class FilePlayer 
{ 


    private WaveFileReader waveFileReader; 
    protected static WaveFormat _waveFormat = new WaveFormat(8000, 16, 1); 
    protected IWavePlayer _waveout = new WaveOut(WaveCallbackInfo.FunctionCallback()); 


    public FilePlayer(string path) 
    { 
     try 
     { 
      waveFileReader = new WaveFileReader(path); 
      _waveout.Init(waveFileReader); 
     } 
     catch (Exception) 
     { 

     } 
    } 



    public void PlayCall() 
    { 
     try 
     { 
      _waveout.Play(); 
     } 
     catch 
     { } 
    } 


    public void PauseCall() 
    { 
     _waveout.Pause(); 
    } 


    public void StopCall() 
    { 
     _waveout.Stop(); 
    } 

} 

任何幫助嗎? thnaks!

回答

0

停止不應該回到文件的開頭。它只是停止播放音頻設備。處理PlaybackStopped事件並將音頻文件的位置設置爲0(如果這是您所需的)。

此外,我建議不要使用函數回調。如果您沒有在GUI應用程序中運行,請使用WaveOutEvent。

+0

感謝它的工作!我正在運行一個GUI應用程序,但感謝提示。那麼Stop()和Pause()有什麼區別? –