应用程序关闭时继续播放音乐
本文关键字:播放 音乐 继续 应用程序 | 更新日期: 2023-09-27 18:25:01
我正在wp7中开发一个应用程序。
我启动了一个mediaelement,从独立的存储中播放我的音乐文件,具有可用的功能(播放、暂停、下一个、上一个、查找),一切都很完美!
现在我想让应用程序在用户退出或页面卸载或类似的事情上继续播放,而mediaelement已经在播放了!
注意在上面尝试
list.playlist:是一个包含音轨的列表num_input:列表中要播放的音乐文件的数量,(get:fromediaelement)time_input:是mediaelement在停止之前的时间跨度,(设置:backgroundaudioplayer开始)play:是布尔变量,如果mediaelement播放则为trueStop():是停止播放mediaelement的函数
我正在尝试的是:
private void PhoneApplicationPage_Unloaded(object sender, RoutedEventArgs e)
{
if (play == true)
{
TimeSpan time_input = med.Position;
Stop();
BackgroundAudioPlayer.Instance.Close();
BackgroundAudioPlayer.Instance.Track = list.playlist[num_input];
BackgroundAudioPlayer.Instance.Position = time_input;
if (PlayState.Playing == BackgroundAudioPlayer.Instance.PlayerState) { BackgroundAudioPlayer.Instance.Pause(); }
else { BackgroundAudioPlayer.Instance.Play(); }
}
}
void Instance_PlayStateChanged(object sender, EventArgs e)
{
switch (BackgroundAudioPlayer.Instance.PlayerState)
{
case PlayState.Playing:
break;
case PlayState.Paused:
case PlayState.Stopped:
break;
}
}
问题是当应用程序页面卸载时(不是在用户退出时,第一个问题)背景音频播放器得到了名称和EnabledControls以及所有工作人员,但即使我按下播放按钮,它也没有播放(所以按钮不起作用,第二个问题)!
此外,我想控制我的应用程序列表旁边的播放器(上一个,下一个,播放,暂停),即使应用程序关闭!
所有的歌曲都是孤立的,我在数据库中有歌曲名和文件名。音轨看起来像:
AudioTrack audiotrack1 = new AudioTrack(new Uri(emp.EmployeeFile + ".mp3", UriKind.Relative), emp.EmployeeName, null, null, null, null, EnabledPlayerControls.All);
谢谢!
实现后台音频需要更多的工作。有关演练,请参阅本文:http://msdn.microsoft.com/EN-US/library/windowsphone/develop/hh202978(v=vs.105).aspx
请注意,代理生活在另一个进程中,我不确定SqlCe是否支持从不同进程并发访问同一数据库。IMO与后台代理通信的最佳方式是由命名的System.Threading.Mutex
保护的隔离存储文件(例如播放列表)。