我想播放放置在资源中的mp3文件,如下面的代码所示,
NSString *st=@"alarm_1.mp3";
NSLog(st);
NSURL* musicFile = [NSURL fileURLWithPath:st];
AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
//AVAudioPlayer *click1=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL URLWithString:@"alarm_1.mp3"]];
[click prepareToPlay];
[click play];
[click release];
但不幸的是我听不到声音 请帮忙
答案 0 :(得分:6)
我不认为你的文件名是对的。试试这个语法:
NSURL *clickURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/alarm_1.mp3", [[NSBundle mainBundle] resourcePath]]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:clickURL error:nil];
答案 1 :(得分:2)
由于ARC,我遇到了类似的问题。不是在使用它的同一方法中定义AVAudioPlayer,而应该在其他地方有一个实例变量,例如UIViewController。这样ARC就不会自动释放这个对象,音频可以播放。
答案 2 :(得分:1)
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/alarm_1.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
[audioPlayer play];
这是答案