我不知道关于音频或终端的蹲坐。我使用此终端命令转换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上都试过这个。
有什么建议吗?
由于
答案 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)
尝试选择音频文件并检查目标是否已被选中
答案 2 :(得分:0)
我尝试了所有内容,但推送通知似乎不适用于自定义声音。将CAF放置在项目根目录&& / Library / Sounds /&& xCode - > /资源已经有2天了,我的想法已经不多了。
奇怪的是,当我在xCode中选择声音文件时,有一个窗口显示该文件的属性,但编解码器:---似乎没有检测到。我使用Apple要求的编解码器从Adobe Premiere导出了wav文件。试图将这些wav文件添加到项目中但没有工作,试图将那些wav转换为caf放置也无法正常工作......叹息。