使用 AVPlayer 从 url 流式传输广播 - > iPhone 播放器控件不起作用
Posted
技术标签:
【中文标题】使用 AVPlayer 从 url 流式传输广播 - > iPhone 播放器控件不起作用【英文标题】:Stream radio from url with AVPlayer -> iPhone player controls not working 【发布时间】:2015-02-04 13:56:15 【问题描述】:我使用 AVPlayer 从 url 流式传输现场声音。
它运行良好,除非我的应用程序在后台并且我想在向上滑动菜单中播放或暂停 iPhone 播放器(我不知道它的确切名称)。音量控制有效,但播放/暂停控制无效。
我已经通过 SO 和互联网查看了几个小时,但无法弄清楚。
有什么帮助吗?
这是代码(如果您需要更多代码,请不要犹豫):
// Set Audiosession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
// Init player
self.playerItem = [AVPlayerItem playerItemWithURL:url];
self.audioPlayer = [AVPlayer playerWithPlayerItem:self.playerItem];
[self.audioPlayer play];
【问题讨论】:
【参考方案1】:您需要自己在应用中实现远程控制。这不是由AVPlayer
处理的。
您需要阅读的是Remote Control Events。
你需要让某个类成为第一个响应者,比如你的根视图控制器。通过调用[self becomeFirstResponder]
确保它正在接收所有事件。
然后只需实现远程控制事件的事件处理程序:
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
if (receivedEvent.type == UIEventTypeRemoteControl)
switch (receivedEvent.subtype)
case UIEventSubtypeRemoteControlTogglePlayPause:
[self playOrStop: nil];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self previousTrack: nil];
break;
case UIEventSubtypeRemoteControlNextTrack:
[self nextTrack: nil];
break;
default:
break;
【讨论】:
以上是关于使用 AVPlayer 从 url 流式传输广播 - > iPhone 播放器控件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
通过 AvPlayerItem 和 AvPlayer 流式传输时监控下载的字节数 - iOS