iOS 7背景音频,AudioSession

3

我正在尝试为iOS 7(AVPlayer)制作一个简单的收音机播放器,但我不知道如何使用AudioSession API。有一些教程,但这些教程针对的是iOS 6或更早版本。

能否有人发布一段代码片段或者一个iOS 7 AV教程的链接?

1个回答

2
当然。这将设置您的音频会话以进行播放,并启用与其他音频的混合,然后激活该会话。这是使用新的Objective-C API,而不是您在所有示例中看到的旧的基于C的API。
如果您想接收远程控制事件和/或在AirPlay和控制中心中显示专辑/歌曲信息,则无法启用与其他应用程序的混合选项,因此在您的情况下,您可能希望省略该选项字典。
NSError *audioError = nil;
AVAudioSession *session = [AVAudioSession sharedInstance];
if(![session setCategory:AVAudioSessionCategoryPlayback
             withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&audioError]) {
    NSLog(@"[AppDelegate] Failed to setup audio session: %@", audioError);
}
[session setActive:YES error:&audioError];

一些其他的提示-确保您在info.plist文件中向UIBackgroundModes键添加音频以允许后台音频播放。

如果您想要远程控制事件(通过控制中心,耳机,蓝牙,AirPlay等),那么调用

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

并将其放在您的应用程序委托中:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
    if(event.type == UIEventTypeRemoteControl)
    {
        switch(event.subtype)
        {
            case UIEventSubtypeRemoteControlPause:
            case UIEventSubtypeRemoteControlStop:
                break;
            case UIEventSubtypeRemoteControlPlay:
                break;
            default:
                break;
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接