【问题标题】:WP7 - Controlling the BackgroundAudioPlayer form the Foreground appWP7 - 从前台应用程序控制 BackgroundAudioPlayer
【发布时间】:2013-06-30 21:00:21
【问题描述】:

All the samples 目前我看到的是带有硬编码歌曲列表的 AudioPlaybackAgents。

我需要从前台应用程序控制列表。对我来说似乎是一个明显的要求。

BackgroundAudioPlayer.Instance.Track api 使您看起来可以从前台应用程序直接将 Track 添加到 BackgroundPlayer,并且它们应该只是播放。这似乎不起作用

如果“播放列表”只是一个曲目,后台代理会做什么?

如果播放列表是多个曲目,并且代理在其回调中被调用以在列表中移动,那么将播放列表从前台应用程序传递到代理的建议方式是什么?

TIA

帕特龙

【问题讨论】:

标签: windows-phone-7 windows-phone-7.1


【解决方案1】:

我发现BackgroundAudioPlayer (BAP) 和前台应用程序之间的接口很可能是Windows Phone 7.x SDK 中构思最糟糕的“工程”部分。隔离存储对我来说真的不起作用,因为我的应用程序可以下载许多文件,并且一次只能在“播放列表”中播放几个文件。我是否应该暂时将这些文件复制到 IsolatedStorage 中的“特殊”位置,以便代理可以从那里读取播放列表?在 10 到 20MB 的流行音乐中,我不这么认为。另外,如果我想使用后台传输服务(顺便说一句,它工作得很好)将文件增量添加到播放列表中,我将如何告诉代理在下载更多曲目时加载更多曲目?如果没有达成某种约定以按正确的顺序创建曲目,这是无法做到的。

尝试使用代理上的静态成员将曲目添加到播放列表(正如他们在文档中所建议的那样),并且...嗯...是的,这只是一个非首发。

我现在解决的是在前台应用程序中管理播放列表,并根据用户的操作将曲目一一提供给 BAP。问题是这不适用于锁定屏幕上显示的 BAP 控件。它似乎也没有始终如一地处理 TrackEnded 事件。我只需使用 MediaElement 并同时放弃背景音频就可以了。

我希望这个 API 闹剧的发明者不会参与到 WP 的未来版本中。

【讨论】:

    【解决方案2】:

    如果您使用播放列表,则假设即使应用不在前台,这些播放列表也会添加/更新。在这种情况下,代理必须能够管理播放列表。

    如果您一次只播放一首曲目,那么后台代理只需要在您的应用不在前台时保持曲目播放。

    应用程序和代理之间的通信充其量是棘手的。最简单的通信方式是在独立存储中创建一个写入另一个读取(然后删除)的文件,或者通过数据库创建文件。

    【讨论】:

    • “IsolateStorage”,我感觉你会这么说,但希望我漏掉了什么。
    • 有了 SQLCE,谁还需要 SterlingDB?
    【解决方案3】:
    AudioTrack audioTrack =
                    new AudioTrack(new Uri("shared\\transfers\\1.mp3", UriKind.RelativeOrAbsolute), null,
                                    null,
                                    null,
                                    null,
                                    null,
                                    EnabledPlayerControls.Pause);
     BackgroundAudioPlayer.Instance.Track = audioTrack;
                     BackgroundAudioPlayer.Instance.Play();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      相关资源
      最近更新 更多