如果我通过启用某些选项(使用setCategory:withOptions:error:)来设置AVAudioSession类别,然后再调用setCategory:error:,那么先前设置的选项会怎样?

  • 他们保持状态吗?
  • 是否全部重置为各自的默认值?

  • 如果答案是#1,如果新类别与启用的选项不兼容怎么办?系统会自动禁用它吗?
    我试图阅读文档,但找不到该特定信息。

    谢谢。

    最佳答案

    发生类别更改时,这些选项不会保持其状态。

    如果没有使用任何可用的setCategory方法设置选项,则为应用程序AVAudioSession共享实例的categoryOptions属性分配值0。

    例如这行-

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
    

    等价于-
    AVAudioSessionCategoryOptions AVAudioSessionCategoryOptionsNone = 0;
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionsNone error:nil];
    

    10-08 05:53