AVAudioPlayer只播放部分声音

时间:2012-08-02 17:53:45

标签: objective-c ios xcode avfoundation avaudioplayer

我正在尝试使用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似乎是最简单,最直接的方式。

2 个答案:

答案 0 :(得分:3)

在实例化AVAudioPlayer之后,你错过了这个:

[self.player prepareToPlay];

此方法准备缓冲区以供播放。

在引用变量时也使用self,这样就可以通过访问器方法而不是ivar直接访问实例变量。

答案 1 :(得分:1)

修复了它,感谢8vius,放入

[player prepareToPlay];

在numberOfLoops行之后,它就像魅力一样。