我正在尝试使用AVAudioPlayer按下按钮时播放歌曲片段。整个剪辑在Xcode中播放得很好,但当我在设备上加载应用程序并按下按钮时,它会播放歌曲的第一秒然后安静。
我在viewDidLoad下有这个:
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Song.aiff", [[NSBundle mainBundle] resourcePath]]];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&audioFileError];
player.numberOfLoops = -1;
然后在按下按钮时:
if (player == nil)
NSLog(@"Audio file could not be played");
else
[player play];
编辑:我也对如何播放音频片段的其他建议持开放态度,AVAudioPlayer似乎是最简单,最直接的方式。
答案 0 :(得分:3)
在实例化AVAudioPlayer之后,你错过了这个:
[self.player prepareToPlay];
此方法准备缓冲区以供播放。
在引用变量时也使用self
,这样就可以通过访问器方法而不是ivar直接访问实例变量。
答案 1 :(得分:1)
修复了它,感谢8vius,放入
[player prepareToPlay];
在numberOfLoops行之后,它就像魅力一样。