2015-10-07 163 views
3

我正试图通过AVPlayer录制正在流式传输的音频。从麦克风AVAudioRecorder只记录,如果音频通过扬声器发挥其可能工作(虽然质量下降),但它肯定会不如果耳机插好工作。从AVPlayer流式传输记录音频

我到处找了一个解决方案,但仍然没有找到适合我的解决方案。我需要抓取音频缓冲区吗?还有另一种方法来捕捉正在播放的内容吗?

回答

1

您可以通过将MTAudioProcessingTap添加到AVPlayer来获取音频缓冲区。

这个过程有点复杂,但有some information那里。

+0

这就是我一直在想我需要做的事情,但希望我不必走下这种低级框架的工作之路。我发现这篇文章(http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/)似乎正是我想要的,但我知道我会遇到重大问题所以希望有一个更容易的选择。 – Oren

+0

检查出上面的亚光答案,它应该更容易,如果你不介意丢弃'AVPlayer' –

+0

AVAudioFile应该处理网络上托管的文件吗? (我评论Matt'a答案...见下文) – Oren

0

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

+0

查看https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch14p655AVAudioEngineTest/AVAudioEngineTest/ViewController.swift为例。 – matt

+0

如果文件没有嵌入,我可以使用AVAudioEngine吗?每当我尝试在线创建一个'AVAudioFile'时,它立即崩溃。我发现这个,但没有答案: http://stackoverflow.com/questions/30862664/stream-data-from-network-in-avaudioengine-is-it-possible – Oren

+0

对不起,错过了你的问题。我怀疑你能做到;你必须诉诸你的其他选择......! – matt