Проблема с кнопкой IOS AVPlayer Play/Pause
Я использую AVPlayer
для воспроизведения живого потока из Интернета с помощью следующего кода:
NSString *u = @"http://192.192.192.192:8036";
NSURL *url = [NSURL URLWithString:u];
radiosound = [[AVPlayer alloc] initWithURL:url];
[radiosound play];
И у меня есть одно нажатие кнопки:
[radiosound play];
и пауза:
[radiosound pause];
Моя проблема в том, что я хочу использовать только одну кнопку Play/Pause, но когда я использую этот код
if (radiosound.isPlaying) {
[radiosound pause];
} else {
[radiosound play];
}
Мое приложение вылетает из-за того, что AVPlayer не распознает "isPlaying".
Любые советы?
Ответы
Ответ 1
AVPlayer
не имеет свойства isPlaying
. Используйте свойство rate
(0.0 означает остановлен, 1.0).
if (radiosound.rate == 1.0) {
[radiosound pause];
} else {
[radiosound play];
}
Вы можете посмотреть ссылку AVPlayer
здесь.
Ответ 2
После некоторых исследований выяснилось, что при отсутствии сетевого соединения AVPlayer
по-прежнему устанавливает скорость в 1.0 после получения сообщения -play
.
Таким образом, я также проверяю currentItem и модифицировал свой метод следующим образом:
-(BOOL)isPlaying
{
if (self.player.currentItem && self.player.rate != 0)
{
return YES;
}
return NO;
}
Пожалуйста, поделитесь своим мнением, если вы считаете, что с этим подходом что-то не так.