我正在尝试播放手机歌曲集中的音乐。
音效属性是否支持从歌曲集中播放?
以前我使用媒体播放器播放歌曲,但我想将音乐设置为暂停。
音效代码: 声音效果; 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;
}
答案 0 :(得分:1)
Song
是一个包含音乐流的类,只能与媒体播放器一起播放。您的代码无效的原因是因为FromStream方法要求流为:
- PCM wave文件
- 单声道或立体声
- 8或16位
- 介于8,000 Hz和48,000 Hz之间的采样率
我没有试过这个,也不知道认证指南对它的影响,但是你可以使用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();
}