kAudioSessionProperty_OtherAudioIsPlaying始终返回True

时间:2013-06-18 02:01:23

标签: iphone ios objective-c avfoundation avaudiosession

我已经尽可能多地跟踪了不同的示例,其中大部分都在Apple文档中,但我无法找到kAudioSessionProperty_OtherAudioIsPlaying 总是在我的设备上返回正数的原因。

我已经初始化并激活了会话,但是当我的音乐暂停时它仍会返回正数。

这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    AVAudioSession* session = [AVAudioSession sharedInstance];

    NSError *activationError = nil;
    BOOL success = [session setActive: YES error: &activationError];
    if (!success) { NSLog(@"%@", activationError); }

    UInt32 otherAudioIsPlaying;
    UInt32 propertySize = sizeof (otherAudioIsPlaying);

    AudioSessionGetProperty (
                             kAudioSessionProperty_OtherAudioIsPlaying,
                             &propertySize,
                             &otherAudioIsPlaying
                             );

    if (otherAudioIsPlaying) {
        [session setCategory: AVAudioSessionCategoryAmbient error: nil];
    } else {
        [session setCategory: AVAudioSessionCategorySoloAmbient error: nil];
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,设法修复它,确保在检查属性之前已经实例化了AVAudiosession,如下所示:

AVAudioSession * session = [AVAudioSession sharedInstance];

确保在尝试检查任何其他音频播放之前发生这种情况并且它应该可以正常工作:)