小编Dav*_*uer的帖子

macOS / swift通过AVCaptureSession捕获音频

我目前正在尝试在Mac上实现一个简单的音频录制工具。由于我需要在内存中存储原始音频缓冲区,因此无法使用AVAudioRecorder,它只会将录制内容写入文件。

我的方法是创建一个AVCaptureSession,Input(麦克风)和Output(AVCaptureAudioDataOutput)并启动会话。一切正常,但是从不调用输出的委托回调

我确保在项目设置中添加麦克风/摄像机权限(以防万一)。

也许有人可以帮助我!

这是我的代码:

import Foundation
import AVFoundation

class AudioCaptureSession: NSObject, AVCaptureAudioDataOutputSampleBufferDelegate {

    let settings = [
        AVFormatIDKey: kAudioFormatMPEG4AAC,
        AVNumberOfChannelsKey : 1,
        AVSampleRateKey : 44100]
    let captureSession = AVCaptureSession()

    override init() {
        super.init()

        let queue = DispatchQueue(label: "AudioSessionQueue", attributes: [])
        let captureDevice = AVCaptureDevice.default(for: AVMediaType.audio)
        var audioInput : AVCaptureDeviceInput? = nil
        var audioOutput : AVCaptureAudioDataOutput? = nil

        do {
            try captureDevice?.lockForConfiguration()
            audioInput = try AVCaptureDeviceInput(device: captureDevice!)
            captureDevice?.unlockForConfiguration()
            audioOutput = AVCaptureAudioDataOutput()
            audioOutput?.setSampleBufferDelegate(self, queue: queue)
            audioOutput?.audioSettings = …
Run Code Online (Sandbox Code Playgroud)

audio macos recording avfoundation swift

6
推荐指数
1
解决办法
1507
查看次数

标签 统计

audio ×1

avfoundation ×1

macos ×1

recording ×1

swift ×1