音量无故降低

Sound volume decreasing for no apparent reason

我有一个使用 SwiftUI 的 iOS 应用程序。它处理一些声音文件并执行一些录音。这是做录音工作的功能:

func recordAudio(to file: String, for duration: TimeInterval) {
    let audioSession:AVAudioSession = AVAudioSession.sharedInstance()
    
    do {try audioSession.setCategory(.playAndRecord, mode: .default)
        try audioSession.setActive(true)
        
        let audioFilename = getDocumentsDirectory().appendingPathComponent(file+".m4a"),
            audioURL = URL(fileURLWithPath: audioFilename),
            settings = [
                AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
                AVSampleRateKey: 44100,
                AVNumberOfChannelsKey: 2,
                AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
                ]

        audioRecorder = try AVAudioRecorder(url: audioURL, settings: settings)
        audioRecorder.delegate = self
        audioRecorder.record(forDuration: TimeInterval(2.0))
    } catch let error as NSError {
        print("Failed -- Recording !!! -> \(error)")
    }
}

至此,基本可以了,但是有一个奇怪的行为,我既不理解也不喜欢。

问题是:

当我启动应用程序并播放声音文件时,音量适合我的口味。 然后,在不调整音量的情况下,我进行了一些录音(使用上面的功能)。 最后在录音完成后,回到刚才播放的文件重新播放;音量莫名其妙的变小了,我也不知道为什么。

我的函数中有什么可以解释的吗? 或者有人能想到的其他原因?

如果我重新启动应用程序,音量会自动恢复正常。 有关信息,我正在使用 iOS 14.4.2 和 Xcode 12.4.

.playAndRecord模式下录制后,音频会话将在播放期间降低音量。录制后,明确设置为 .playback 之类的内容以获得您期望的音量。