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.

10-08 07:30