我正在为Windows Phone 7开发一个应用程序。有一个媒体元素可以从网址播放视频。当我锁定手机时,音频和视频停止播放。我已经尝试禁用ApplicationIdleDetetction,我已经处理了Rootframe Obscured和Unobscured。当手机被锁定时,我无法弄清楚如何继续播放音频。
非常感谢任何帮助!!
感谢 格雷厄姆
答案 0 :(得分:0)
即使手机被锁定,也可以使用AudioPlayerAgent保持音乐播放!
检查"背景音频播放器示例"在Windows Phone Code Samples。
答案 1 :(得分:0)
屏幕锁定时视频将自动停止播放 - 这是内置系统功能。可以把它想象成一个故障安全的应用程序,通过在后台播放视频来耗尽设备电池,这是一项不必要的任务 - 无论如何 - 观看内容? ApplicationIdleDetection
根本不会帮助完成这项任务。
如果你有一个单独的音频流,你可以使用AudioPlayerAgent,它可以用来播放本地和远程音频流。
阅读本文:
答案 2 :(得分:0)
您可以使用调度程序计时器执行此操作。以下是我在我的应用程序Searchler(这个功能尚未在市场上,即将推出更新!)的示例,使用@ http://smf.codeplex.com/提供的MMP播放器框架
namespace Searchler.Views
{
public partial class PlayerView : PhoneApplicationPage
{
bool appUnderLock = false;
DispatcherTimer dispatcherTimer = new DispatcherTimer();
}
public PlayerView()
{
InitializeComponent();
//Hack to enable play under lock screen
UIThread.Invoke(() => VideoPlayer.PlayStateChanged += VideoPlayer_PlayStateChanged);
UIThread.Invoke(() => (Application.Current as App).RootFrame.Obscured += RootFrame_Obscured);
UIThread.Invoke(() => (Application.Current as App).RootFrame.Unobscured += RootFrame_Unobscured);
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 3);
}
void dispatcherTimer_Tick(object sender, EventArgs e)
{
if( VideoPlayer.PlaybackPosition == VideoPlayer.EndPosition)
((PlayerViewModel)DataContext).Next(); //Custom GetNext Video Method
}
void RootFrame_Unobscured(object sender, EventArgs e)
{
dispatcherTimer.Stop();
appUnderLock = false;
}
void RootFrame_Obscured(object sender, ObscuredEventArgs e)
{
dispatcherTimer.Start();
appUnderLock = true;
}
}