为什么我无法访问.playAndRecord

时间:2019-01-06 01:02:57

标签: swift avfoundation

我正在尝试使用Xcode 10在Swift 4 iOS 12中播放声音。我有一个已经在其中完成项目,并且正在从该项目复制代码。

但是现在执行以下代码时:

try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playAndRecord, mode: .default)

在此确切的行中出现以下错误:

  

类型“ AVAudioSession.Category”(也称为“ NSString”)没有成员“ playAndRecord”

我已经导入了AVFoundation,所以我不知道这是行不通的。

3 个答案:

答案 0 :(得分:2)

您可以使用“ AVAudioSessionCategoryPlayAndRecord”

答案 1 :(得分:0)

我遇到了同样的问题,我在swift v4中工作,而您使用的代码适用于Swift 4.2 您必须使用以下字符串AVAudioSessionCategoryPlayAndRecord代替playAndRecord

let audioSession = AVAudioSession.sharedInstance()

    do {
        try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, mode: AVAudioSessionModeVoiceChat, options: AVAudioSessionCategoryOptions.mixWithOthers)
        try audioSession.overrideOutputAudioPort(.none)
        try audioSession.setActive(true)
    } catch {
        debugPrint(error.localizedDescription)
    }

}

答案 2 :(得分:0)

您可以从Apple网站上查阅代码。 AVAudioSession Apple document

let audioSession = AVAudioSession.sharedInstance()
do {
    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
} catch {
    print("Setting category to AVAudioSessionCategoryPlayAndRecord failed.")
}