音频播放不起作用(AudioToolbox / AudioServices) - iPad 3

时间:2012-09-04 16:17:10

标签: objective-c audiotoolbox ipad-3

我有一个简短的方法,使用AudioToolbox / AudioServices库播放音频通知(为简洁起见,我删除了大部分功能代码):

- (IBAction)thatWasEasy:(id)sender {

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"easy" ofType:@"mp3"];
    NSURL *aFileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];

    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)aFileURL, &soundID) ;
    AudioServicesPlaySystemSound(soundID);     
}

音频在模拟器以及iPad 1和iPad 2设备上正常播放,但在iPad 3(Verizon LTE版)上无法听到声音。我已经彻底检查了设备声音设置,并将音频文件类型转换为wav和caf,行为没有区别。

有关更深层次问题排查的任何建议吗?遗憾的是,我没有另外的iPad 3可供比较。感谢帮助!

2 个答案:

答案 0 :(得分:0)

想出来。当您进入[设置]并选择[常规]选项卡下的[声音]时,您可以验证您的振铃和警报音量级别是否大于零,并且当移动滑块时,设备将以新设置的级别进行响铃。此外,您还会注意到以下列表中的所有特定音调都已启用。这是检查设备设置时让我失望的原因。我推出了YouTube和其他应用程序,并且能够很好地播放声音。

在与另一个人(他知道产品好一点)交谈之前,我没有意识到,还有另一种方法可以使系统声音静音。按两次圆圈按钮,屏幕底部会显示一个图标栏。如果用手指向右拖动图标,则会显示扬声器图标。由于某种原因,这恰好被静音了......大概是在我最近进行系统恢复之后。点击它可以取消静音,让您的业务恢复正常。不知道为什么Apple会这样设计它,但如果可以在设备设置下访问它,它会有所帮助(并节省了几个小时的修补)。

答案 1 :(得分:0)

我认为你不能使用AudioServicesPlaySystemSound在设备上播放mp3文件 AudioServicesPlaySystemSound apple document

-(void)playAif:(NSString *)filename {
//  NSLog(@"play: %@", filename);

SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle]
                  pathForResource:filename ofType:@"aif"];    


if (path) { // test for path, to guard against crashes

    UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;    // 1

    AudioSessionSetProperty (
                             kAudioSessionProperty_AudioCategory,                        // 2
                             sizeof (sessionCategory),                                   // 3
                             &sessionCategory                                            // 4
                             );

    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
    AudioServicesPlaySystemSound (soundID);

}
}