如何使用 MPMoviePlayerController 播放均匀的背景模式

Posted

技术标签:

【中文标题】如何使用 MPMoviePlayerController 播放均匀的背景模式【英文标题】:How to play even background mode using MPMoviePlayerController 【发布时间】:2012-02-15 11:24:57 【问题描述】:

准备好使用 IIS7 的音频直播服务。 音频直播服务器设置很复杂,但是已经成功了。

我获得了这样的流式传输 URL (@"http://xxx.xxx.xx.xx/liveStream.isml/manifest(format=m3u8-aapl).m3u8")。

我的使用代码出乎意料的简单。

   self.theURL = [NSURL URLWithString:@"http://xxx.xxx.xx.xx/liveStream.isml/manifest(format=m3u8-aapl).m3u8"]; 

   if(moviePlayer == nil)
   
       moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:theURL];
    
    [moviePlayer play];

嗯...我无法如愿控制音乐播放器。

问题是这样的。

即使是 backgroundMode,我也不想停下来播放音乐。

请告诉我一些建议。谢谢。

【问题讨论】:

真棒问题....这就是我放弃投票的原因 【参考方案1】:

请仅签入设备。我的应用程序也已签入。我的代码如下。我说的是 iOS5

在 plist 中,我创建了一个名为“Required background mode”的数组,并在数组名称中插入了一个项目,“App Plays Audio”。 有时会发生 URL 问题检查此网址MPMoviePlayer sound working in Simulators and ipad device, but not Working in iPhone Device

  - (void)viewDidLoad 
  
    [super viewDidLoad];
    NSError *setCategoryErr = nil;
    NSError *activationErr  = nil;
    [[AVAudiosession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr];
    [[AVAudioSession sharedInstance] setActive: YES error: &activationErr];
     [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
     UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
     newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];


【讨论】:

最后两行是做什么的?他们真的让我的应用程序工作=) UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; 当应用程序进入后台时,应识别任务例如:obj-->“newTaskId”(最后一行)并到达最后一行,它将承担一个最重要的责任,即,当应用程序进入后台时,应用程序一直在运行,就像音频播放器@jmeinik

以上是关于如何使用 MPMoviePlayerController 播放均匀的背景模式的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 中获取出色的视频消息线程

MPMoviePlayerController 不播放本地视频

iPhone应用程序:仅在小视图中播放视频

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话