Possible Duplicate:
playing a .caf file: works fine in simulator but not in iPhone
我正在尝试使用SimpleAudioEngine在正在开发的iPhone应用程序中播放背景音乐。我使用以下代码播放背景音乐:
[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic: @"MenuTheme.mp3"];
[[SimpleAudioEngine sharedEngine] playBackgroundMusic: @"MenuTheme.mp3" loop: YES];
这很好。
但是,当我使用带有以下行的终端将MenuTheme.mp3转换为MenuTheme.caf时:
afconvert -f caff -d LEI16 "MenuTheme.mp3" "MenuTheme.caf"
并且我再次使用SimpleAudioEngine播放.caf文件,它不起作用。
关于如何解决此问题的任何想法?单击.caf文件时,它会播放。在终端中,当我写:
afinfo "MenuTheme.caf"
它告诉我数据格式为2 ch,44100 Hz,'lpcm'(0x0000000C)16位Little-Endian有符号整数,无通道布局。
我真的不知道出了什么问题,但是对于在iPhone上使用音频,我也很陌生。任何帮助表示赞赏。谢谢。
编辑:afconvert拼写错误
最佳答案
我认为这不是您问题中提到的afconvert
。 (我相信那是一个错字,对吗?)我在命令行上没有看到明显的问题。我通常使用:
afconvert -f caff -d LEI16@22050 sound.wav
将波形文件转换为CAF。
由于您无法通过单击来播放CAF文件,因此建议尝试将其转换为wave或AIFF等其他格式:
afconvert -f AIFC -d ima4 sound.wav
并尝试在Finder中播放它们。如果仍然不起作用,请尝试使用诸如Audacity之类的第三方工具将MPEG Layer 3文件转换为wave,然后使用
fconvert
再试一次。附言我通常将CAF用于声音效果,并将AIFF用于背景音乐。请参考:Sound on iOS: Best Practices.