扩展“扩展音频文件服务”,以便它可以使用跛脚/其他编解码器编写MP3?

时间:2014-01-24 12:59:13

标签: ios iphone mp3 audio-converter

我想使用lame mp3 encoder在iPhone上编码音频数据并将其保存到文件中。我可以使用lame进行编码,我可以使用Extended Audio File Services来编写音频文件。我想将两者结合起来,以便我的代码保持一致,并且在编写不同格式的音频文件时不使用两种粘合代码。

我能想象的一个可能的解决方案是将自己的AudioConverter(就像AudioConverterNew创建的那个)包裹在跛脚周围,以便我可以将此转换器与Extended Audio File Services函数一起使用,最突出的是ExtAudioFileWrite。你能帮助我实现这个解决方案或另一个能够与iOS提供的API一致地编写mp3文件吗?

更新

经过大量的试验后,我确信Apple提供的AudioConverter结构对于应用开发者来说是不可扩展的。因此,我正在使用以下工作:

我创建了自己的抽象AudioEncoder类,它声明了编码音频数据并将其写入文件的方法。然后我将这个AudioEncoder类子类化,一个用于包装ExtAudioFileRef函数,另一个用作LAME的包装。我现在可以在任何想要编码音频的地方使用这些子类,但是如果我编码为本机支持的格式或者我用外部库添加的格式,我就不必在意了,因为我的编码器类隐藏了所有的API-底层编码器的细节。如果我以后想要添加OGG或FLAC,这将很容易,因为我只需要编写AudioEncoder的其他子类来包装相应的OGG或FLAC库。

0 个答案:

没有答案