从AVPlayer录制音频流

4

我想要录制/捕获由AVPlayer流式传输的音频。 AVAudioRecorder仅从麦克风录制,如果通过扬声器播放音频可能会起作用(尽管质量会受到影响),但如果插入耳机,则绝对不起作用。

我已经到处寻找解决方案,但仍然没有找到适合我的解决方案。我需要抓取音频缓冲区吗?还有其他捕获正在播放的音频的方法吗?

2个回答

1
你可以通过为AVPlayer添加MTAudioProcessingTap来获取音频缓冲区。

这个过程有点复杂,但是有一些信息可以参考。


这就是我一直在考虑需要做的事情,但我希望不必涉足使用如此低级别的框架。我发现了这篇文章(http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/),它似乎正好符合我的要求,但我知道会遇到很大的问题,所以希望能有更简单的选择。 - Oren
请查看Matt上面的答案,如果您不介意放弃AVPlayer,那应该会更容易。 - Rhythmic Fistman
AVAudioFile能够处理网络上托管的文件吗?(我在评论中回复了Matt的答案...请参见下文) - Oren

0

如今最简单的方法是使用AVAudioEngine进行播放和录制。


请参考以下链接中的示例代码:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch14p655AVAudioEngineTest/AVAudioEngineTest/ViewController.swift - matt
如果文件没有被嵌入,我能使用AVAudioEngine吗?每当我尝试从在线mp3创建AVAudioFile时,它会立即崩溃。我找到了这个链接但没有答案: https://dev59.com/CV0Z5IYBdhLWcg3w-ETS - Oren
抱歉,在你的问题中错过了那个部分。我怀疑你做不到,你必须求助于其他选项...! - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接