【问题标题】:On WP7, can I play a song from the library, interrupt it with a mp3 audio, and then resume the playback?在 WP7 上,我可以播放库中的歌曲,用 mp3 音频中断它,然后继续播放吗?
【发布时间】:2011-05-19 16:25:08
【问题描述】:

我想要实现的是:

  1. 播放媒体库中的背景音乐
  2. 在某个触发器上,淡出音乐,播放另一个 mp3 文件(长度不一,秒到一分钟)
  3. 播放该段音频后,从库中恢复以前的音乐

现在我遇到了这些限制:

  • 为了访问和播放用户库中的音乐,我需要使用 MediaPlayer XNA 类。
  • 为了播放任意 mp3 文件,我需要使用 MediaPlayer 或 MediaElement,但不能使用 SoundEffect 或 SoundEffectInstance
  • 如果我使用 MediaElement 播放任何内容,MediaPlayer 会停止。它完全失去了音频队列,所以我需要播放剩余的音乐,但这没问题
  • MediaPlayer 不支持搜索,所以我无法打开上一首歌曲,只能转到暂停前的位置

所以:

  • 我不想使用 SoundEffect 或 SoundEffectInstance,因为音频必须是 wav 文件。
  • 我不能只使用 MediaPlayer,因为如果我在那里播放音频来中断歌曲,我将无法找到它之前的位置
  • 我不能使用 MediaPlayer 和 MediaElement 的组合,因为 MediaPlayer 会停止 MediaPlayer,这再次阻止我恢复之前的播放
  • 我不能只使用 MediaElement,因为它无法播放库中的歌曲

你有没有看到我遗漏的东西,或者真的是我必须吸收它并使用 wav 文件的唯一选择? (会有很多这样的动态下载,这种方式显然效率低下!)有什么建议吗?

谢谢!

【问题讨论】:

  • 我没试过,但是如果你在调用 MediaElement 之前暂停它,MediaPlayer 还会停止吗?
  • 可以使用 MediaElement 作为用户的库吗?
  • @vlad - 不,MediaElement 只能访问独立存储或外部 URI。目前,只有媒体播放器可以访问用户的库。
  • 或者,您可以在想要播放 MediaElement 时暂停 MediaPlayer,然后在 MediaElement 播放完毕后恢复 MediaPlayer?
  • @keyboardP 谢谢,我不知道。

标签: windows-phone-7 mp3 media-player mediaelement


【解决方案1】:

很遗憾,您遇到了平台的限制。

除了您已确定的替代方案外,您还可以通过 MediaElement 播放从外部源流式传输的音乐。通过使用计时器来跟踪播放了多少,当通过在您对流式服务器的请求中包含起点来恢复轨道时,通过轨道开始那么远。这当然意味着您需要提供或找到合适的流媒体功能。 :(

这些都不是理想的,但目前这是我们拥有的最好的。来自 Mango 的背景音频设备可能会有所帮助,但在宣布详细信息之前,我们无法确定。

【讨论】:

    【解决方案2】:

    不能只使用 MediaPlayer,因为如果我在那里播放音频来中断歌曲,我将无法找到它之前的位置

    您将使用 MediaPlayer 获得 mediastatechanged 事件,在该事件中您可以检查媒体播放器的状态并暂停歌曲,然后您还可以恢复歌曲

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多