Подтвердить что ты не робот

Проблема с кнопкой 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".

Любые советы?

4b9b3361

Ответ 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;
}

Пожалуйста, поделитесь своим мнением, если вы считаете, что с этим подходом что-то не так.