Ios UIBackgroundModes不';t工作广告

Ios UIBackgroundModes不';t工作广告,ios,background,audio-streaming,Ios,Background,Audio Streaming,我阅读了关于UIBackgroundModes的苹果文档,下面是它的内容: 当此键存在时,系统将 音频框架自动防止 你的申请不会被暂停 当它移动到背景时。作为 只要它正在播放音频 应用程序继续在中运行 支持该音频的背景 然而,我有一个应用程序,它使用AVPlayer类播放音频流,但它不工作。这个键应该在那里,以节省我们明确实现音频会话的工作。有人能告诉我为什么这样不行吗?是否有人使用过它并使其工作?确保AVPlayer的代码实际正在运行。在我的情况下,即使我为核心位置启用了密钥,如果我没有通过调

我阅读了关于UIBackgroundModes的苹果文档,下面是它的内容:

当此键存在时,系统将 音频框架自动防止 你的申请不会被暂停 当它移动到背景时。作为 只要它正在播放音频 应用程序继续在中运行 支持该音频的背景


然而,我有一个应用程序,它使用AVPlayer类播放音频流,但它不工作。这个键应该在那里,以节省我们明确实现音频会话的工作。有人能告诉我为什么这样不行吗?是否有人使用过它并使其工作?

确保
AVPlayer
的代码实际正在运行。在我的情况下,即使我为
核心位置
启用了密钥,如果我没有通过调用
开始
在代码中实际使用,应用程序将被挂起,就像没有定义密钥一样。出于这个原因,我通常不会停止核心位置,而只是让它使用最不准确的选项来保持设备电源,同时继续使用后台运行模式。

在播放音频之前,请尝试执行以下操作:

NSError *sessionError = nil;
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&sessionError];

在AVPlayer中,我从不调用pause方法,因此它不应该停止。当应用程序进入后台模式时,它正在播放。我想我只需要实现音频会话。但是,这个文档并没有说实话。另外,请确保您的
AVPlayer
对象没有分配到
UIViewController
实例中。由于此视图可能会在应用程序进入后台时被卸载,因此您的
AVPlayer
可能会被卸载并与
UIViewController
实例解除分配。即使允许应用程序在后台运行,也会发生这种情况。在我的例子中,我练习了动态加载和卸载的对象与应该始终运行的对象之间的强分离。我不知道你的应用程序是如何构造的,但我希望这个提示能有所帮助。事实上,它是在视图中实现的。我不知道应该在哪里以及如何实施它。。。因为这是我的观点,开始了球员。我应该将其放在app delegate中吗?是的,在
UIApplicationDelegate
中创建一个类的实例作为属性,它可以作为
AVPlayer
相关活动的控制器对象。可以使用
[[[UIApplication sharedApplication]委托]avplayerController]
UIViewController
实例访问此实例(如果您将控制器命名为
avplayerController
)并让您的
UIViewController
实例通过上述选择器与该控制器对象进行简单的
通信。要接收来自此控制器对象的消息,请使用
委派
通知
。我已将我的AVPlayer实例移动到AppDelegate,并按照建议将其放入属性中。设法使它工作,但仍然,它不会在后台播放。。。ViewController中没有release或dealoc代码,所有内容现在都在AppDelegate中。