1

我已经尽可能多地遵循了不同的示例,其中大部分都在 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];
    }
}

我究竟做错了什么?

4

1 回答 1

1

我遇到了同样的问题,通过确保在检查属性之前已实例化 AVAudiosession 来解决它,如下所示:

AVAudioSession *session = [AVAudioSession sharedInstance];

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

于 2013-09-12T14:05:50.430 回答