2011-08-06 125 views
5

我試圖從播放音樂,從手機中收集歌曲在windows phone 7中的音效

音效屬性是否支持從歌曲集合播放?

以前我用媒體播放器播放歌曲,但我想設置音樂不能暫停

聲音效果代碼: SoundEffect效果; SoundEffectInstance實例;

 effect = SoundEffect.FromStream(ml.Songs[songSelectedIndex]); 
     instance = effect.CreateInstance(); 
     instance.IsLooped = true; 
     instance.Volume = 1.0f; 
     instance.Pitch = 1.0f; 
     instance.Play(); 

守則媒體庫:

 using (var ml = new MediaLibrary()) 

     { 
      FrameworkDispatcher.Update(); 
      MediaPlayer.Play(ml.Songs[songSelectedIndex]); 
      MediaPlayer.IsRepeating = true; 
     } 

回答

1

一個Song是包含音樂流,只能用媒體播放器播放的一類。你的代碼是不工作的原因是因爲FromStream方法需要流是:

  • 一個PCM波形文件
  • 單聲道或立體聲
  • 8位或16位
  • 之間8000赫茲和48,000Hz採樣率

我還沒有試過這個,也不知道認證指南是什麼,但是您可能可以通過MediaPlayer使音樂無法使用。處理MediaStateChanged事件並檢查音樂是否暫停。如果是,則請撥打Resume方法繼續播放。

編輯 - 更新,代碼:

處理MediaStageChanged事件是一樣的任何其他事件。

MediaPlayer.MediaStateChanged += new EventHandler<EventArgs>(MediaPlayer_MediaStateChanged); 

在事件處理程序,做到這一點:

void MediaPlayer_MediaStateChanged(object sender, EventArgs e) 
{ 
    if (MediaPlayer.State == MediaState.Paused) MediaPlayer.Resume(); 
} 
+0

我試圖就如何使用mediaStateChanged研究,但我沒有真正找到它的一個樣本。你有一個例子嗎? –

+0

@ben tan - 已更新回答 – keyboardP