Кнопка Play / Pause на пульте Apple TV не работает во время воспроизведения видео с помощью AVPlayerViewController - PullRequest
0 голосов
/ 02 января 2019

Я играю видео через AVPlayerViewController в tvOS (Xamarin tvOS).Я приостанавливаю и возобновляю видео кнопкой Play / Pause на пульте Apple TV.Я использую метод PressesBegan, чтобы получить событие по нажатию кнопки Play / Pause.Это работает нормально на симуляторе, но не на реальных устройствах.На реальных устройствах мы не получаем события для нажатия кнопки Play / Pause.Мы попробовали это на Apple TV 4K (версия 12.11) и Apple TV (версия 11.4).Это происходит только тогда, когда я воспроизводю видео через AVPlayerViewController, в противном случае он работает нормально.Я попробовал UITapGestureRecognizer, метод PressesEnded, а также метод RemoteControlReceived.Но все же, нет никакой помощи.Любая помощь будет высоко ценится.

https://github.com/lewixlabs/TvOS-PlayBack-Sample-App/blob/master/TvOS%20PlayBack%20Sample%20App/ViewController.cs

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Ваше приложение не будет получать события кнопки Пауза (или Воспроизведение / Пауза) при воспроизведении видео. Это ожидаемое и документированное поведение. Система перенаправляет действие в обработчик приложения «Сейчас исполняется» (в данном случае это AVPlayerViewController).

Вы не сказали почему вы пытались перехватить Play / Pause ...

  • Если вы пытаетесь отключить паузу, вам следует использовать другой подход; например, вы можете отключить взаимодействие с пользователем в корневом представлении AVPlayerViewController (это отключает не только воспроизведение / пауза, но и почти все элементы управления). Вы также можете отключить элементы управления воспроизведением. Помните, что у пользователя есть несколько способов сделать паузу, включая нажатие сенсорной поверхности, использование другого типа пульта дистанционного управления или указание Siri «приостановить», ни один из которых не приведет к обычным событиям кнопки паузы.

  • Если вы пытаетесь определить, когда видео находится в режиме паузы, вы можете наблюдать значение ключа для свойства проигрывателя "rate" (скорость может также измениться на ноль по другим причинам, например, потому что воспроизведение достигнуто). конец).

0 голосов
/ 03 января 2019

Добавьте UITapGestureRecognizer в ViewController и разрешите тип печати UIPressType.PlayPause.

var tap = new UITapGestureRecognizer(() =>
{
    Console.WriteLine("Remote PlayPause button pressed");
})
{
    AllowedPressTypes = new NSNumber[] { new NSNumber((long)UIPressType.PlayPause) }
};
this.View.AddGestureRecognizer(tap);
...