gpt4 book ai didi

ios - AVAudioRecorder 录制流式音频

转载 作者:可可西里 更新时间:2023-11-01 03:35:08 26 4
gpt4 key购买 nike

我有一个播放流音频的应用程序。如何使用 AVAudioRecorder(或其他东西?)从 AVPlayer 录制流式音频。谢谢。

最佳答案

swift 3+这是将 Audio Session 保存到文档目录 (audio.aac) 的简单 VC

import UIKit
import AVFoundation

class ViewController: UIViewController {

var audioRecorder: AVAudioRecorder?

override func viewDidLoad() {
super.viewDidLoad()
verifyRecordPermission()
}

@IBAction func recordButonAction(_ sender: UIButton) {
if audioRecorder?.isRecording == true {
audioRecorder?.stop()
sender.setTitle("Record", for: .normal)
}
else {
startRecording()
sender.setTitle("Stop", for: .normal)
}
}

func verifyRecordPermission() {
let permission = AVAudioSession.sharedInstance().recordPermission()
switch permission {
case .denied:
print("recording not allowed")
case .granted:
print("recording allowed")
default:
AVAudioSession.sharedInstance().requestRecordPermission() { (granted) -> Void in
print("recording granted:\(granted)")
}
}
}

func startRecording() {
guard AVAudioSession.sharedInstance().recordPermission() == .granted else {
return
}

let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let audioUrl = URL(fileURLWithPath: "\(documentsPath)/audio.aac")
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryRecord)
try session.setActive(true)
try audioRecorder = AVAudioRecorder(url: audioUrl,
settings: [AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 24000.0,
AVNumberOfChannelsKey: 1 as NSNumber,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue])
} catch {
// handle error...
return
}

guard let audioRecorder = audioRecorder else {
return

}
audioRecorder.prepareToRecord()
audioRecorder.record()
}

func stop(session: AVAudioSession = AVAudioSession.sharedInstance()) {
audioRecorder?.stop()
audioRecorder = nil
do {
try session.setActive(false)
} catch {
// handle session errors
}
}
}

关于ios - AVAudioRecorder 录制流式音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18297522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com