使用 OpenAL 将音频转换为 CAF 格式以便在 iPhone 上播放
Posted
技术标签:
【中文标题】使用 OpenAL 将音频转换为 CAF 格式以便在 iPhone 上播放【英文标题】:Converting audio to CAF format for playback on iPhone using OpenAL 【发布时间】:2010-09-20 05:23:36 【问题描述】:我在 CrashLanding 示例中使用来自 Apple 的 SoundEngine 示例代码来播放多个音频文件。使用 CrashLanding 中包含的示例 caf 文件一切正常,但是当我尝试使用我自己的示例转换为 CAF 使用 afconvert 时,我得到的只是石质的沉默;)
是否有人设置了 afconvert 以生成能够通过 OpenAL 播放的 CAF 文件?
【问题讨论】:
我想我会把你推到“999”的边缘,戴夫! 【参考方案1】:afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf
参考资料:
苹果的Multimedia Programming Guide: Using Audio: Preferred Audio Formats in ios afconvert(1) man page(使用afconvert -h
获取完整信息)
【讨论】:
请问您是如何或在哪里找到答案的? @KristopherJohnson 两个链接都断开了。 错误无法打开输入文件(-43)我该怎么办? 你需要在终端运行上面的代码。in.wav
是声音的位置(只需拖放声音文件),out.caf
是带有.caf
扩展名的声音的输出路径
很好,但这将通道从 2 减少到 1,本质上:这是从立体声到单声道的转换!如果这不是您想要的,只需从命令中删除“-c 1”即可。【参考方案2】:
简单的 bash 脚本将文件夹中的 mp3 文件转换为 iphone 的 caf
#!/bin/bash
for f in *.mp3; do
echo "Processing $f file..."
afconvert -f caff -d LEI16@44100 -c 1 "$f" "$f/mp3/caf"
done
【讨论】:
为了让脚本更兼容不同的文件类型,我将 afconvert 行修改为:afconvert -f caff -d LEI16 "$f" "$f/mp3/caf" 否则我会得到错误 你能告诉我在哪里存储这个字符串吗?我对 bash 脚本一无所知。我必须以哪种格式存储它? Mac 或 windows 可以吗? @Devang 在 Mac 中很容易完成,只需打开 TextEdit,将文本保存到文件,然后打开终端,导航到保存的文件,输入:chmod +x这是最好的尺寸:
afconvert -f caff -d ima4 original.wav
【讨论】:
【参考方案4】:感谢您的信息。
另外,如果您正在研究使用 openAL 进行额外压缩,这可能会引起您的兴趣:
“iPhone、OpenAL 和 IMA4/ADPCM” http://www.wooji-juice.com/blog/iphone-openal-ima4-adpcm.html
【讨论】:
此方法是否与添加到 UILocalNotification 兼容?它比第一种方法压缩得多。【参考方案5】:今天 -c 似乎不起作用,我通过以下方式得到它:
afconvert -f caff -d LEI16 input.m4a output.caf
【讨论】:
以上是关于使用 OpenAL 将音频转换为 CAF 格式以便在 iPhone 上播放的主要内容,如果未能解决你的问题,请参考以下文章
Core Audio / OpenAL 会重新采样音频文件吗?