iOS:实时流媒体AVPlayer



我想从服务器上流式传输一首歌,这似乎与我的做法很好,但这种方法似乎不可能做到一些事情。

我目前已经实例化了一个AVPlayer

player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http://media.soundcloud.com/stream/songID?stream_token=myToken"]];

并在我的应用程序认为缓冲区足够时调用play。

这可以很好地播放声音,但我发现,如果我停止指向AVPlayer实例,播放器就会停止,如果我将应用程序推到后台,声音会逐渐消失并暂停,直到应用程序回到前台。

有可能让歌曲在AVPlayer的背景下继续播放吗?

如果没有,我应该看看HTTP实时流媒体吗?

我是iOS这方面的新手,我非常感谢我的同事们能给我的任何指导!

您应该明确启用应用程序在后台播放音频。在Info.plist文件中插入以下密钥:

<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>

(参考)

在开始播放音频之前,还要添加以下行:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:NULL];

(参考)

技术问答;A QA1668在iOS 上使用AV Foundation在后台播放媒体

Q: 当我的应用程序处于后台时,我如何确保我的媒体在使用AV Foundation时继续播放?

A: 您必须声明您的应用程序在后台播放音频内容,并为您的音频会话分配适当的类别。另请参阅视频媒体的特殊注意事项。

声明您的应用程序在后台中播放音频内容

首先,声明您的应用程序提供特定的后台服务,并且必须允许在后台继续运行。要做到这一点,请在应用程序的Info.plist文件中添加UIBackgroundModes键。它的值是一个数组,该数组包含一个或多个字符串,用于标识应用程序支持的后台任务。指定字符串值audio以指示应用程序在后台向用户播放音频内容:

图1声明应用程序在后台播放音频内容。

重要提示:UIBackgroundModes音频键还允许应用程序使用AirPlay在后台流式传输媒体内容(另请参阅视频媒体的特殊注意事项)。

相关内容

  • 没有找到相关文章

最新更新