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; } 

Song是一个包含音乐流的类,只能与媒体播放器一起播放。 您的代码无法正常工作的原因是因为FromStream方法要求流为:

  • PCM波形文件
  • 单声道或立体声
  • 8位或16位
  • 在8,000 Hz和48,000 Hz之间采样率

我没有试过这个,也不知道认证指南对它的影响,但是你可能会使MediaPlayer使音乐无法发生。 处理MediaStateChanged事件并检查音乐是否已暂停。 如果是,则调用Resume方法继续播放。

编辑 – 使用代码更新:

处理MediaStageChanged事件与任何其他事件相同。

 MediaPlayer.MediaStateChanged += new EventHandler(MediaPlayer_MediaStateChanged); 

在事件处理程序中,执行以下操作:

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