我正在用iOS 4.2的3GS iPhone测试我的应用。
我使用以下代码在我的IBAction中播放声音。在模拟器中(iPad和iPhone都是),它完美地工作 - 我可以听到声音。
NSString *pathToMusicFile1 = [[NSBundle mainBundle] pathForResource:@"alarm" ofType:@"mp3"];
NSError *error;
alarmSound = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile1] error:&error];
NSLog(@"Song1 Loaded");
if (alarmSound == nil) {
NSLog(@"Error playing sound");
} else {
alarmSound.numberOfLoops = 20;
alarmSound.volume = 1.0;
[alarmSound play];
}
我已经正确地声明了所有的头文件和框架等,因为我可以在模拟器中听到声音。
我也检查过我的手机没有静音!我从 iPhone 的通用 GUI 中听到其他声音。(例如日期选择器)
我还清理了所有目标并删除了应用程序以重新安装。
有什么想法是错的吗?!
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
会简单地覆盖静音开关并允许在手机锁屏时播放声音。 - epetousis