从同一个文件同时录制和播放

Posted

技术标签:

【中文标题】从同一个文件同时录制和播放【英文标题】:Simultaneous record and play from same file 【发布时间】:2010-01-21 00:41:01 【问题描述】:

我是第一次尝试使用音频队列服务。在阅读了所有文档并使用了一些示例代码之后,我认为我对这些类非常了解,并且已经实现了自己的播放和录制应用程序,没有任何问题。

我需要同时从同一个缓冲区进行录制和播放,但是我在写入文件和同时读取文件时遇到了很大的困难。我可以毫无问题地播放文件,但仅限于播放开始前的最后一个写入缓冲区。我希望只要文件被写入,就可以继续播放文件。这可能吗?

提前致谢!

【问题讨论】:

如果有人遇到类似问题,显然没有办法做到这一点。我已经使用分布在许多文件上的环形缓冲区实现了这个系统。虽然创建和匹配并不简单,但它确实有效。希望这对某人有帮助! 你能帮帮我吗?我需要从音频流中录制。我使用了 matt Gallagher 的 Audiostreamer 类来播放流。我不知何故需要录制流媒体,但我被困在录制部分。 【参考方案1】:

将捕获的数据保存在您自己的缓冲区中而不是写入文件可能是值得的。然后,您可以将这些缓冲区提供给播放。

请确保从 AVFoundation 框架中添加以下行以同时捕获和播放:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error:nil];

希望这会有所帮助。

【讨论】:

以上是关于从同一个文件同时录制和播放的主要内容,如果未能解决你的问题,请参考以下文章

如何同时录制使用 AVPlayer 和 wav 文件播放的歌曲?

同时录制音频和播放 iPod?

NAudio Asio 同时录制和播放

在网页上录制、保存和播放保存的声音文件

在 iOS 中使用耳机插孔引脚同时播放和录制音频?

Android:同时录制视频和播放 mp3?