我有一个简短的方法,使用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可供比较。感谢帮助!
答案 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);
}
}