我想从服务器上流式播放一首歌曲,这看起来与我所做的方式很好,但有一些事情似乎不可能使用这种方法。
我目前已经实例化了一个AVPlayer
player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http://media.soundcloud.com/stream/songID?stream_token=myToken"]];并在我的应用程序认为缓冲区足够时对其调用play。
这可以很好地播放声音,但是我发现如果我停止指向AVPlayer实例,播放器就会停止,如果我将应用程序推到后台,声音就会淡入淡出并暂停,直到应用程序返回到前台。
有没有可能让这首歌继续在AVPlayer的背景下播放?
如果不是,我是否应该关注HTTP Live Streaming?
我对iOS的这方面非常陌生,我非常感谢我的同事们能给我的任何指导!
发布于 2012-11-22 04:15:44
您应该显式地启用您的应用程序在后台播放音频。在Info.plist文件中插入以下密钥:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>(reference)
在开始播放音频之前,还要添加下面这行代码:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:NULL];(reference)
发布于 2016-08-04 21:55:28
在iOS上使用AV Foundation在后台播放媒体的技术问答QA1668
问:当我的应用程序在后台时,如何确保我的媒体在使用AV Foundation时继续播放?
答:您必须声明您的应用程序在后台播放音频内容,并为您的音频会话分配适当的类别。另请参阅视频媒体的特殊注意事项。
声明您的应用程序在后台播放音频内容
首先,声明您的应用程序提供特定的后台服务,并且必须允许其在后台继续运行。为此,请在应用程序的Info.plist文件中添加UIBackgroundModes密钥。它的值是一个数组,该数组包含一个或多个标识应用程序支持的后台任务的字符串。指定字符串值audio,表示应用程序在后台向用户播放音频内容:
图1声明应用程序在后台播放可听内容。
重要提示: UIBackgroundModes音频密钥还允许应用程序使用AirPlay在后台流式传输媒体内容(另请参阅视频媒体的特殊注意事项)。
https://stackoverflow.com/questions/13501280
复制相似问题