如何将.wav文件转换为.caf文件,以便在iOS中使用

时间:2015-01-31 18:54:11

标签: ios audio terminal file-conversion

我不知道关于音频或终端的蹲坐。我使用此终端命令转换wav文件以在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上都试过这个。

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:7)

TL; DR;

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

长版: 我知道这是旧的,但这个线程已经解决了我的问题,所以这里解决了问题中的问题。

CAF只是一个容器,您使用错误的编解码器来容纳容器中的数据。引自苹果医生:

  

自定义提醒声音由iOS系统声音设备播放,因此它们必须采用以下音频数据格式之一:

     

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

将WAV转换为CAF(MA4)

时,这是正确的终端命令
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v

答案 1 :(得分:3)

尝试选择音频文件并检查目标是否已被选中 xcode

答案 2 :(得分:0)

我尝试了所有内容,但推送通知似乎不适用于自定义声音。将CAF放置在项目根目录&& / Library / Sounds /&& xCode - > /资源已经有2天了,我的想法已经不多了。

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