IOS: AVAudioPlayer остановить и играть - PullRequest
4 голосов
/ 25 марта 2012

У меня есть этот код:

NSString *path = [NSString stringWithFormat:@"%@/%@",
                  [[NSBundle mainBundle] resourcePath],
                  @"change.mp3"];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
change = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:nil];
[change prepareToPlay]; 

Я пишу в этом коде в viewdidload;теперь с помощью кнопки я запускаю этот звук, но если я нажимаю ту же кнопку, я хочу остановить этот звук и перезапустить звук;Я пробую этот код внутри IBAction, но он не работает

[change stop];
[change prepareToPlay];
[change play];

что я могу сделать?

Ответы [ 3 ]

12 голосов
/ 25 марта 2012

Как насчет этого:

[change pause];
change.currentTime = 0.0;
[change play];
1 голос
/ 25 марта 2012

документация метода -stop гласит:

Метод stop не сбрасывает значение свойства currentTime на 0. Другими словами, если вы вызываете stop во время воспроизведения, а затем вызываете play, воспроизведение возобновляется с того места, где оно было остановлено.

Таким образом, вы должны использовать свойство currentTime и установить его на 0:

[change pause];
[change setCurrentTime:0];
[change play];
0 голосов
/ 25 марта 2012

Вы пытались снова выполнить инициализацию? Я имею в виду сначала [change release] и инициирую его.

...