AVaudioPlayer关于歌曲重叠

时间:2010-05-12 09:58:09

标签: iphone

我在我的应用程序中使用了AVAudioPlayer,但问题是当我从列表中播放歌曲时它会在停止播放歌曲之前播放我再次进入歌曲列表然后选择另一首歌曲然后两首歌曲将同时开始播放所以请告诉我将终止我的第一首歌的代码。

我使用flag变量初始化歌曲文件---

fileURL = [[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource:@" Om Namo" ofType:@"aac"]];
self._player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
if (self._player)
{
_fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[self._player.url relativePath] lastPathComponent], self._player.numberOfChannels, nil];
[self updateViewForPlayerInfo];
[self updateViewForPlayerState];
}

[fileURL release];
break;

Play and push function---

- (void)startPlayback
{

if ([self._player play])
{
//[self stop];
[self updateViewForPlayerState];
self._player.delegate = self;
}
else
NSLog(@"Could not play %@\n", self._player.url);
}

- (void)pausePlayback
{
[self._player pause];
[self updateViewForPlayerState];
}

我也做停止功能---

-(void)stop
{
[_player release];
self._player=nil;
}

请帮帮我。 是正确的我的停止功能。 我把停止功能或任何其他解决方案用于解决此问题......

1 个答案:

答案 0 :(得分:0)

我能想到三件事:

1)您可以通过在每行前面放置4个空格来使代码看起来像代码。你到目前为止没有答案的原因可能是因为你的问题几乎不可读;)

2)在你的停止方法中你可能想尝试这个:

- (void) stop {
    [_player stop];
    self._player = nil;
}

3)Apple非常不鼓励在会员名称前使用下划线。我从未遇到过问题,但我会将_player重命名为player