Windows Phone 7中的音效

ben*_*lim 5 c# 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();
Run Code Online (Sandbox Code Playgroud)

媒体库代码:

        using (var ml = new MediaLibrary())

        {
            FrameworkDispatcher.Update();
            MediaPlayer.Play(ml.Songs[songSelectedIndex]);
            MediaPlayer.IsRepeating = true;
        }
Run Code Online (Sandbox Code Playgroud)

key*_*rdP 1

ASong是包含音乐流的类,只能用媒体播放器播放。您的代码不起作用的原因是FromStream方法要求流为:

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

我还没有尝试过这个,也不知道认证指南的内容是什么,但您也许可以使用MediaPlayer. 处理MediaStateChanged事件并检查音乐是否暂停。如果是,则调用Resume方法继续播放。

编辑 - 使用代码更新:

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

MediaPlayer.MediaStateChanged += new EventHandler<EventArgs>(MediaPlayer_MediaStateChanged);
Run Code Online (Sandbox Code Playgroud)

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

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