在wp8的背景中播放视频

时间:2013-06-17 17:32:27

标签: windows-phone-7 windows-phone-8 silverlight-3.0

我正在为Wp7.x和Wp8开发一个应用程序,该应用程序在禁用锁定屏幕的情况下运行YouTube视频。 我已经看到新版本的MyTube应用程序和微软版本的电子管应用程序已被撤回,其功能允许用户在通过锁定屏幕锁定手机时继续收听视频(音频部分)。我想开发一种YouTube收音机类型的应用程序,该应用程序不断从youTube网站提取新的特定类型的Viedo Url,即使在后台或在锁定屏幕中运行,也可以播放音频部分。

请参阅wp8商店中的MyTube应用程序,了解我所谈论的内容。

2 个答案:

答案 0 :(得分:0)

当手机屏幕锁定时,Windows Phone应用程序进入休眠/逻辑删除模式。可以通过更改PhoneApplicationService类的UserIdleDetectionMode和ApplicationIdleDetectionMode属性来更改此行为。默认情况下,UserIdleDetectionMode和ApplicationIdleDetectionMode设置为Enable,这允许服务在用户空闲时锁定手机,并在手机锁定时停用应用程序。

如下所示,我使用了ApplicationIdleDetectionMode,当设置为Disable时,在手机被锁定时不会停用应用程序。

PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
PhoneApplicationFrame rootFrame = App.Current.RootVisual as PhoneApplicationFrame;
if (rootFrame != null)            
{                
     rootFrame.Obscured += new EventHandler<ObscuredEventArgs>(rootFrame_Obscured);                
     rootFrame.Unobscured += new EventHandler(rootFrame_Unobscured);            
}

一旦ApplicationIdleDetectionMode被禁用,则在重新启动应用程序之前无法启用它。如果您尝试启用它,它将抛出异常。要处理设备的锁定和解锁状态,可以调用RootFrame的Obscured and Unobscured事件处理程序。手机被锁定时会被调暗。在这里,我们应该使用最少的CPU,更少的电池消耗等。当手机解锁时,Unobscured会被调用。这是我们可以恢复应用程序的所有状态的阶段。

答案 1 :(得分:0)

在Windows Phone 8中,您实际上可以向BackgroundAudioPlayer课程提供视频网址,并且它会在后台播放。我在Podcaster中使用这种技术在音频和视频之间切换,尽管它是触发切换的用户交互。

<强>更新

在Windows Phone 7中,此技术不起作用。此外,MediaElement将在显示锁定屏幕时始终暂停视频(即使禁用了ApplicationIdleDetectionMode),也无法对此进行任何操作。

简而言之,你可以在WP8中解决它,但在WP7上你无能为力