如果我的应用中有视频播放,我想允许音乐播放继续播放,因为大多数没有音频,但是我发现的代码已从Obj-C转换为Swift,现在好像问题。
func handleAmbientAudio(){
if !recordMicInputOn {
try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
try? AVAudioSession.sharedInstance().setActive(false)
}
}
在AVPlayer上调用play()函数之前,我调用了上面的函数,该函数还可以确保麦克风输入是否打开。如果不是,则大多数情况下它会在视频播放时继续播放iTunes。其他时间,我在音频会话中遇到此崩溃:
****由于未捕获的异常“ NSRangeException”而终止应用程序,原因:“ *-[__ NSArray0 objectAtIndex:]:索引0超出了空NSArray的范围” 首先抛出调用堆栈: (0x1849e6d8c 0x183ba05ec 0x184942448 0x10314fdac 0x1031627e4 0x102a6ce44 0x102a05ea8 0x1029d7ed8 0x18540da3c 0x103b711dc 0x103b7119c 0x103b7d200 0x103b827c8 0x103b82500 libc ++ abi.dylib:终止于未捕获的NSException类型
我在想很多变化,但是我找不到如何在Swift中正确实现这一目标。