代码之家  ›  专栏  ›  技术社区  ›  Amagrammer

audioservicesplaysystemsound不在iPad设备上工作

  •  6
  • Amagrammer  · 技术社区  · 14 年前

    我正在开发我的第一个iPad应用程序的早期阶段,为了简单起见,到目前为止我一直在使用audioservicesplaysystemsound和相关功能来播放声音。我的代码基于苹果节拍器示例中的SoundEffect类。

    具体的症状是我可以在模拟器中听到声音,但不能在设备上听到,尽管我已经验证了我可以在设备上的其他应用程序中听到声音。audioServicesCreateSystemSoundID返回有效的声音标识符,因此它并不像具有不同大小写的声音文件名那样简单,即“sound.mp3”与“sound.mp3”。

    我知道我可能需要切换到不同的库,比如Openal,因为不相关的原因,但是我想知道这里发生了什么。有人有什么建议吗?有没有可以调用的函数来获取osstatus值或其他东西?

    * bump——在过去的几周里,我一直在做其他项目,但现在我又回到了这个问题上,我真的很感谢你的回答。谢谢。

    2 回复  |  直到 13 年前
        1
  •  2
  •   Christopher Pickslay    14 年前

    我觉得你不能用 AudioServicesPlaySystemSound . 看看 documentation 用于支持的文件类型。我不知道他们为什么在模拟器中正确地播放,但我也有同样的问题。尝试改用avaudioplayer:

    NSError *error;
    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error];
    if (error)  {
        NSLog(@"Error creating audio player: %@", [error userInfo]);
    } else {
        [audioPlayer play];
    }
    
    [audioPlayer release];
    
        2
  •  5
  •   Jeremy Fuller    13 年前

    我通过谷歌搜索发现了这个问题。我的问题正是在这个问题的标题中提到的:“audioservicesplaysystemsound不能在ipad设备上工作”。但是,对这个问题的描述是不同的。

    简单地说,在将我的iPad升级到iOS 4.3之后,AudioServicesPlaysSystemsound停止工作。

    我终于找到了我版本的问题的解决方案,所以希望这能帮助其他人。

    转到iPad上的“设置”应用程序并选择“常规”。点击声音。确保“用按钮更改”设置为“打开”。这将解决问题。