首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:直播AVPlayer

iOS:直播AVPlayer
EN

Stack Overflow用户
提问于 2012-11-22 04:10:51
回答 2查看 3.4K关注 0票数 2

我想从服务器上流式播放一首歌曲,这看起来与我所做的方式很好,但有一些事情似乎不可能使用这种方法。

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

代码语言:javascript
复制
player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http://media.soundcloud.com/stream/songID?stream_token=myToken"]];

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

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

有没有可能让这首歌继续在AVPlayer的背景下播放?

如果不是,我是否应该关注HTTP Live Streaming

我对iOS的这方面非常陌生,我非常感谢我的同事们能给我的任何指导!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-22 04:15:44

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

代码语言:javascript
复制
<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

(reference)

在开始播放音频之前,还要添加下面这行代码:

代码语言:javascript
复制
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:NULL];

(reference)

票数 8
EN

Stack Overflow用户

发布于 2016-08-04 21:55:28

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

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

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

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

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13501280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档