2010-12-21 84 views
0

我正在錄製麥克風的聲音。然後,我將帶有wav標題的PCM保存到獨立存儲中。之後我使用MediaElement播放它。我想有能力暫停歌曲,但它似乎是不可能的。我試過使用SmoothStreamingMediaElement,但問題是一樣的 - 也許我做錯了什麼。Windows phone 7媒體元素wav暫停

如果有人有任何想法如何暫停從麥克風歌曲,然後請幫助。

這是我的代碼,但暫停不起作用。也許我可以用不同的方式讀取文件?

  using (var store = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       using (var audio = store.OpenFile(_song_path, FileMode.Open, FileAccess.Read)) 
       { 
        _media_element.MediaOpened += new RoutedEventHandler(_media_element_MediaOpened); 
        _media_element.SetSource(audio); 
        audio.Close(); 
       } 
      } 

暫停代碼非常簡單:)

private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     _media_element.Pause(); 
    } 

爲了測試我做了簡單的項目,能夠從網絡上下載文件,並從獨立存儲播放。它適用於wmv和mp3,但不適用於wav。這裏是VS項目DowloadingAndPlayingWav

如果有人有任何想法請求幫助。我已經黑客可能整個互聯網 - 這個問題沒有解決方案。

+0

我懷疑有可能是出錯了媒體流回事。我已經能夠在WP7上播放/暫停來自定製MediaStreamSource的PCM音頻,沒有任何問題。你能提供更多的代碼來顯示你何時/如何調用Pause()? – kindohm 2010-12-22 20:03:11

+0

你可以提供示例代碼嗎?你是如何做到的? – 2010-12-23 12:59:36

回答

0

MediaElement有一個Pause方法。你嘗試過使用它嗎?

0

對於仍然對此主題感興趣的人(來自搜索),我想我會分享我在我的應用程序(快速錄像機)中如何處理這個問題。

我找不到合適的方法暫停,但它很容易被僞造。單擊暫停按鈕時,您只需存儲當前播放位置並停止播放。當播放按鈕被按下時,您可以在開始播放後再次設置您的位置。下面是一些片段:

private TimeSpan _pausedPosition; 

要暫停:

_pausedPosition = Player.Position; 
Player.Stop(); 

發揮:

Player.Play(); 
if (_pausedPosition != TimeSpan.Zero) Player.Position = _pausedPosition;