我已经尝试了一切我能找到的尝试让我的应用程序播放mp3。我有几个2-3秒的mp3播放作为声音效果,但我试图播放15s的MP3没有任何运气。
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"test" withExtension: @"mp3"] error:&error];
if (error) {
NSLog(@"Error creating audio player: %@", [error userInfo]);
} else {
if([audioPlayer play] == FALSE) {
NSLog(@"Fail %@", error);
}
}
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 15.0 target: self
selector: @selector(stopMusic) userInfo: nil repeats: NO];
我怀疑计时器与它有什么关系,但我想我会包括它以防万一。基本上我的错误检查根本没有被触发。它“应该”正常播放但没有声音出现,并且没有显示错误。
我尝试了其他一些尝试让它工作,我尝试了没有计时器。我找不到像样的指南。我不需要一个完整的媒体播放器,只需要UIScreenViewController
的一些背景音乐。
我也尝试过以下代码,这些代码适用于短MP3,而不是我想播放的MP3更长。
NSString *path = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"mp3"];
NSURL *pathURL = [NSURL fileURLWithPath : path];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
请帮忙,我花了好几个小时试图对此进行排序。每次发布操作系统时,苹果似乎都会重新调整音频。
答案 0 :(得分:2)
我为你做了一些测试:结果是默认情况下Xcode 5中没有将音乐文件添加到目标。因此URLForResource:error:
可能会返回nil
。
尝试从项目中删除mp3。然后再次添加它,这一次让你把它添加到你的目标:
另一件事是:似乎你在方法中定义了AVAudioPlayer
。您通常为音频播放器设置@property
,否则它的生命仅限于该方法 - 并且在您到达方法结束后音乐停止播放。