使用 AVCaptureSession 捕获和操作麦克风音频?

发布于 2024-10-20 14:53:53 字数 363 浏览 3 评论 0原文

虽然有很多关于如何使用 AVCaptureSession 抓取相机数据的教程,但我找不到有关如何正确处理麦克风数据的信息(即使在苹果的开发网络本身上)。

我已经实现了 AVCaptureAudioDataOutputSampleBufferDelegate,并且我收到了对我的委托的调用,但我不知道我获得的 CMSampleBufferRef 的内容是如何格式化的。缓冲区的内容是一个离散样本吗?它有什么属性?这些属性可以在哪里设置呢?

可以使用 [AVCaptureVideoDataOutput setVideoSettings:] 设置视频属性,但没有对 AVCaptureAudioDataOutput 的相应调用(没有 setAudioSettings 或类似的东西)。

While there are plenty of tutorials for how to use AVCaptureSession to grab camera data, I can find no information (even on apple's dev network itself) on how to properly handle microphone data.

I have implemented AVCaptureAudioDataOutputSampleBufferDelegate, and I'm getting calls to my delegate, but I have no idea how the contents of the CMSampleBufferRef I get are formatted. Are the contents of the buffer one discrete sample? What are its properties? Where can these properties be set?

Video properties can be set using [AVCaptureVideoDataOutput setVideoSettings:], but there is no corresponding call for AVCaptureAudioDataOutput (no setAudioSettings or anything similar).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行雁书 2024-10-27 14:53:53

它们的格式为 LPCM!您可以通过获取 AudioStreamBasicDescription 来验证这一点,如下所示:

CMFormatDescriptionRef formatDescription = CMSampleBufferGetFormatDescription(sampleBuffer);
const AudioStreamBasicDescription *streamDescription = CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription);

然后检查流描述的 mFormatId。

They are formatted as LPCM! You can verify this by getting the AudioStreamBasicDescription like so:

CMFormatDescriptionRef formatDescription = CMSampleBufferGetFormatDescription(sampleBuffer);
const AudioStreamBasicDescription *streamDescription = CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription);

and then checking the stream description’s mFormatId.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文