0

可能重复:
播放 .caf 文件:在模拟器中可以正常工作,但在 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-bit little-endian signed integer no channel layout。

我真的不知道出了什么问题,但我对在 iPhone 上使用音频也很陌生。任何帮助表示赞赏。谢谢。

编辑: afconvert 拼写错误

4

1 回答 1

2

我认为这afconvert不是fconvert你的问题中提到的。(我相信这是一个错字,对吗?)我在您的命令行上没有看到明显的问题。我通常使用:

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 ,然后使用afconvert.

PS我一般用CAF做音效,用AIFF做背景音乐。请参考:iOS 上的声音:最佳实践。

于 2012-04-23T19:26:51.380 回答