为什么我的声音没有播放?

时间:2013-03-11 19:16:41

标签: iphone ios6 avaudioplayer avplayer

我正在努力让它发挥作用。 我试着解释一下。我有这样的声音:

See here

我使用以下代码播放代码中的任何声音:

[PlaySounds PlaySound:glo_sound_login];

这将是代码的这一部分

+(void)PlaySound:(NSString *)PlaySound{
    SystemSoundID soundID;
NSString *soundFile = [[NSBundle
                        mainBundle]pathForResource:PlaySound ofType:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL
                                            fileURLWithPath:soundFile],&soundID);
AudioServicesPlaySystemSound(soundID);
if (glo_pref_vibrate == YES) {
    AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);}}

所以我的glo_sound_login看起来像那样:NSString *glo_sound_login=@"Login";

这很好用。但是当我试着打电话时

[PlaySounds PlaySound:glo_sound_update];

看起来像这样:NSString *glo_sound_update=@"Update";

然后它不会播放我的更新声音! 有没有解释为什么我不会播放我的声音? 对于任何一种帮助,我很感激! :) 谢谢 还有一件事: 当我尝试点击Update.mp3文件时,xcode打开文件,它将播放: See Here

1 个答案:

答案 0 :(得分:0)

根据有关AudioServicesPlaySystemSound功能的文档,您无法在该上下文中使用mp3格式。

完整文档here

  

使用此功能播放的声音文件必须是:

     
      
  • 持续时间不超过30秒
  •   
  • 采用线性PCM或IMA4(IMA / ADPCM)格式
  •   
  • 以.caf,.aif或.wav文件打包
  •   

注意:使用afconvert轻松创建正确的格式文件。

生成CAF文件/ little-endian 16bit的例子(应该是完美的)。

/usr/bin/afconvert -f caff -d LEI16 {INPUT} {OUTPUT}