Я пытаюсь воспроизвести файл MP3
, который передан в UIView
из предыдущего UIView
(хранится в NSURL * fileURL
переменная).
Я инициализирую AVPlayer
с помощью:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
NSLog
выводит Player created: 0,
который Я понял, что он еще не готов к игре.
Когда я нажимаю кнопку воспроизведения UIButton
, я запускаю следующий код:
-(IBAction)playButtonClicked
{
NSLog(@"Clicked Play. MP3:%@",[fileURL absoluteString]);
if(([player status] == AVPlayerStatusReadyToPlay) && !isPlaying)
// if(!isPlaying)
{
[player play];
NSLog(@"Playing:%@ with %d",[fileURL absoluteString], player.status);
isPlaying = YES;
}
else if(isPlaying)
{
[player pause];
NSLog(@"Pausing:%@",[fileURL absoluteString]);
isPlaying = NO;
}
else {
NSLog(@"Error in player??");
}
}
Когда я запускаю это, я всегда получаю Ошибка в плеере ??
в консоли.
Однако если я заменю условие if
, которое проверяет, готов ли AVPlayer
к воспроизведению, простым if (! IsPlaying)
..., то музыка воспроизводится ВТОРОЙ РАЗ я нажимаю кнопку воспроизведения UIButton
.
Журнал консоли:
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Playing:http://www.nimh.nih.gov/audio/neurogenesis.mp3 **with 0**
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Pausing:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
2011-03-23 11:06:43.674 Podcasts[2050:207] Playing:http://www.nimh.nih.gov/audio/neurogenesis.mp3 **with 1**
Я вижу, что ВТОРОЙ РАЗ, player.status
, кажется, содержит 1, что Я предполагаю, что это AVPlayerReadyToPlay
.
Что я могу сделать, чтобы воспроизведение работало правильно при первом нажатии кнопки воспроизведения UIButton
?
(например, как я могу убедиться, что AVPlayer
не просто создан, но и готов к воспроизведению?)