无法在 WP81 Silverlight 中使用背景音频

Cannot get Background Audio work in WP81 Silverlight

我正在将 Windows Phone 7.8 应用程序从 Windows Phone 8.1 Silverlight 迁移 - 最终可能迁移到 Windows Phone 10..

但现在我陷入了根本无法让后台音频播放器在 Windows Phone 8.1 Silverlight 中工作的琐事中。 这可能是显而易见的事情 - 但经过几天的实验后,我 运行 没有想法。

我收到错误消息

System.InvalidOperationException: E_FAIL -2146233079

设置音轨时来自播放器。

基本代码片段

public partial class MainPage : PhoneApplicationPage
{
    BackgroundAudioPlayer player;
    Uri _trackUri;
    Uri _albumArtUri;
    string _trackUriString = "http://podcast.cbc.ca/mp3/hourlynews.mp3";
    string _albumArtUriString = "http://www.cbc.ca/podcasting/images/promo-hourlies.jpg";
    string _trackAlbum = "Album - Podcast news";
    string _trackArtist = "Artist - CBC";
    string _trackTitle = "Track title - Hourly news";
    string _tag = "testtag";
    public MainPage()
    {
        InitializeComponent();
    }
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        player = BackgroundAudioPlayer.Instance;
        _trackUri = new Uri(_trackUriString, UriKind.Absolute);
        _albumArtUri = new Uri(_albumArtUriString, UriKind.Absolute);
    }
    private void SetTrack_button_Click(object sender, RoutedEventArgs e)
    {
        player.Track = createTrack();       // player gets error after this statement
    }
    private AudioTrack createTrack()
    {
        return new AudioTrack(_trackUri, _trackTitle, _trackArtist, _trackAlbum, _albumArtUri, _tag, EnabledPlayerControls.All);
    }

我在 VisualStudio 2015 社区解决方案中使用内置模板创建了两个 Silverlight 8.1 项目。是的,背景音频项目是从主程序中引用的。 link to project

为了检查我的理智,我以类似的方式创建了一个使用 VS12 Express 的 WP7.8 项目 (link to project)。并从 VS15 端复制代码。该应用程序工作正常。

想法赞赏 - 非常

好吧,终于深入研究了这个问题。答案就在这里。简单明了:不支持这种方式。在 this link 他们说

"AudioPlayerAgent and AudioStreamingAgent not supported for Silverlight 8.1 apps

The AudioPlayerAgent and AudioStreamingAgent classes, which supported background audio playback for Windows Phone 8 apps, are not supported in Silverlight 8.1. If you want to support background audio playback, you can continue to use a Windows Phone 8 app or create a Windows Phone Store app, which supports new background audio APIs."

就是这样..:(