2015-01-31 103 views
1

我不知道有关音频或终端的蹲坐。我已经使用这个终端命令将WAV文件转换为使用iOS中:如何将.wav文件转换为.caf文件以便在iOS中使用

afconvert -v -f 'caff' -d LEI16 -s 1 /users/myUserName/Desktop/hibeep.wav /users/myUserName/Desktop/hibeep.caf 

将文件添加到我的项目后,没有任何反应,当我执行:

NSURL * softURL = [[NSBundle mainBundle] URLForResource: @"hibeep" withExtension: @"caf"]; 
CFURLRef softSoundURL = (__bridge CFURLRef) softURL; 
AudioServicesCreateSystemSoundID(softSoundURL, &_beepSound); 
AudioServicesPlaySystemSound (_beepSound); 

然而,当我点击在Project Navigator中的hibeep.caf上,声音会播放正常。

我已经在模拟器和iPad上都试过了。

有什么建议吗?

感谢

回答

2

尝试在Xcode中选择音频文件,并检查是选择 xcode

+0

谢谢瓦伦丁。它被检查。 – 2015-01-31 20:28:48

3

TL目标; DR;

afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v 

龙版本: 我知道这是旧的,但该线程已经解决我的问题,所以这里的解决方案,在问题的问题。

CAF只是一个容器,您对容器中保存的数据使用了错误的编解码器。从苹果DOC报价:

自定义的警报声音由iOS系统的声音设施出场,所以他们必须在下面的音频数据格式之一:

线性PCM MA4(IMA/ADPCM) μLaw ALAW

这里的合适的终端命令转换WAV到CAF时(MA4)

afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v 
+0

我尝试了一切,但推送通知似乎不适用于自定义声音。在项目根目录放置CAF &&/Library/Sounds/&& xCode - >/Resources已经过了2天,我的想法已经用完了。 – 2017-04-29 01:04:10

+0

原始来源的类型是什么?我敢打赌,正如我的回答中所解释的那样,这是CAF文件中的错误编解码器。我作为iOS用户,我也注意到iOS 9+喜欢搞乱所有应用程序的通知声音。重新安装应用程序通常会有所帮助。也许是在发展的情况呢?尝试删除应用并重新部署。除了这两种可能的解决方案之外,我在这里还可以做的更多:( – 2017-05-02 15:57:15

+0

以下是一些不太正确的东西:在Xcode中,当我点击声音文件时,右边有一个窗口显示与此相关的信息文件,有一个属性“Codecs:---”。可能是读取编解码器文件有问题?我确定它是正确的编解码器。我用Adobe Premiere导出声音文件。我尝试了所有可用的编解码器,但似乎都没有 – 2017-05-04 08:38:20

0

我尝试了一切,但推送通知似乎不适用于自定义声音。放置CAF项目根& &/Library/Sounds/& & xCode - >/Resources已经过了2天,我已经没有想法了。

奇怪的是,当我在xCode中选择一个声音文件时,有一个窗口显示该文件的属性,但编解码器:---似乎没有检测到。我使用Apple要求的编解码器从Adobe Premiere导出wav文件。试图将这些wav文件添加到项目中,但没有奏效,试图将这些wav转换为caf放置也没有奏效......叹气。

相关问题