gpt4 book ai didi

swift - 如何使用 AVCaptureSession 录制 Mac 的内部声音,而不是麦克风?

转载 作者:行者123 更新时间:2023-11-30 10:41:48 26 4
gpt4 key购买 nike

我正在尝试实现一个具有屏幕录制功能的简单 macOS 应用。

我不想录制麦克风输入,而是录制 Mac 扬声器发出的声音。示例:这样我希望能够将 YouTube 视频录制到文件中。

这可以通过 AVCaptureSession 实现吗?谷歌搜索显示了捕获视频和麦克风的示例,但没有显示内部音频。

这是我必须捕获视频和麦克风的工作代码。我需要修改什么才能禁用麦克风并让扬声器发出内部 PC 的声音?

session = AVCaptureSession()
session.sessionPreset = AVCaptureSession.Preset.high

movieFileOutput = AVCaptureMovieFileOutput()

let displayId: CGDirectDisplayID = CGDirectDisplayID(CGMainDisplayID())

let audioDevice = AVCaptureDevice.default(for: .audio)!

let audioInput = try! AVCaptureDeviceInput(device: audioDevice)

let videoInput: AVCaptureScreenInput = AVCaptureScreenInput(displayID: displayId)!

session.addInput(videoInput)
session.addInput(audioInput)
session.addOutput(movieFileOutput)

session.startRunning()
movieFileOutput.startRecording(to: self.destinationUrl, recordingDelegate: self)

最佳答案

我还没有找到一种简单的方法来做到这一点,但事实证明,鉴于我的机器上安装了另一个软件,可以让原始代码录制音频:Soundflower .

Soundflower is an open source kernel extension for MacOS, designed to create a virtual audio output device that can also act as an input.

鉴于已安装 Soundflower,人们可以使用应用程序/实用程序/音频 MIDI 设置应用程序配置 macOS,将音频发送到虚拟和真实音频设备。这样,上面的代码就可以从 Soundflower 捕获音频,但您仍然可以在普通的音频输出设备上听到它。

应用程序/实用程序/音频 MIDI 设置应用程序的设置如下所述:How can I send my computer's audio to multiple outputs? .

关于swift - 如何使用 AVCaptureSession 录制 Mac 的内部声音,而不是麦克风?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621666/

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