smartfung 2015-10-30 10:05 采纳率: 0%
浏览 1752

Swift 如何使用 Audio Queue Services 保存录音

我想一边录一边保存录音,比如说每 3 秒保存一次成 mp3 或 pcm 档。最后做成串流语音的效果
知道官方接口 Audio Queue Services 的音频队列可以实现,但网上找不到相关范例。
有技术大牛可以给我指点一下吗?

官方接口文档
https://developer.apple.com/library/prerelease/ios/documentation/MusicAudio/Reference/CAAudioTooboxRef/index.html

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 15:27
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使用AudioQueueServices来录制和保存声音,您需要在您的应用程序中添加AudioQueueService的框架。然后,您可以创建一个AudioQueueService对象,并将其与AudioSession一起使用以控制何时开始和停止录制。

    以下是一个简单的示例,说明如何创建一个AudioQueueService并开始录制:

    import AVFoundation
    
    // 创建一个AudioQueueService实例
    let audioQueue = AVAudioQueue()
    
    // 创建一个AudioSession实例
    let session = AVAudioSession.sharedInstance()
    session.setCategory(AVAudioSession.Category.record, mode: .measurement, options: [])
    
    // 创建一个AudioRecorder实例
    let recorder = try! AVAudioRecorder(audioQueue: audioQueue)
    
    // 设置录音格式和速率
    recorder.defaultFormat = .linearPCM
    recorder.sampleRate = 44100
    recorder.outputFormat = .pcmFloat32
    
    // 开始录音
    recorder.prepareToRecord()
    try! recorder.startRecording(to: URL(fileURLWithPath: "/path/to/output.mp3"))
    
    // 在这里你可以监听到录音的状态变化,例如是否已经结束
    

    请注意,这只是一个基本的示例,实际的录音可能需要更多的错误处理和其他功能。此外,为了防止内存泄漏,您应该在应用程序退出时释放所有资源。

    评论

报告相同问题?