0

我有一个从 url 加载 m3u 的 UIWebView:

NSString *url = @"http://141.217.20.38:8000/live.m3u";
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.url]]];

其次是:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

这适用于模拟器,但是当我通过 Xcode(使用开发配置文件)将它安装在设备(iPhone 5)上时,音频不会在后台播放。

我不确定我错过了什么,但任何帮助将不胜感激。

4

2 回答 2

1

因此,看起来还需要创建一个 AVSession。我添加了以下代码,现在它在设备上的工作方式与在模拟器中相同

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                         error:&setCategoryError];
if (!ok) {
    NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}
于 2014-05-02T13:24:39.143 回答
0

beginBackgroundTaskWithExpirationHandler:用于执行冗长的任务,而不是让您的应用程序在后台运行。

您需要在info.plist将后台模式(UIBackgroundModes)设置为 时注册您的应用程序后台模式audio。如应用程序状态和多任务处理中所述

于 2014-05-01T14:41:24.227 回答