无法在 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."
就是这样..:(
我正在将 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."
就是这样..:(