我正在通过tvOS(Xamarin tvOS)中的AVPlayerViewController播放视频。我正在使用Apple TV遥控器上的“播放/暂停”按钮暂停和恢复视频。我正在使用PressesBegan方法在单击“播放/暂停”按钮时获取事件。这在模拟器上工作正常,但在实际设备上却无法正常工作。在实际的设备上,我们没有收到按“播放/暂停”按钮的事件。我们在Apple TV 4K(12.11版)和Apple TV(11.4版)上进行了尝试。 这仅在我通过AVPlayerViewController播放视频时发生,否则效果很好。我尝试了UITapGestureRecognizer,PressesEnded方法以及RemoteControlReceived方法。但是,仍然没有帮助。任何帮助将不胜感激。
答案 0 :(得分:0)
将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);
答案 1 :(得分:0)
播放视频时,您的应用不会收到“暂停”(或“播放/暂停”)按钮事件。这是预期的并有记录的行为。系统会将动作重定向到“正在播放”应用的处理程序(在本例中为AVPlayerViewController)。
您没有说为什么您要拦截播放/暂停...
如果要禁用暂停,则应采用其他方法。例如,您可以在AVPlayerViewController的根视图上禁用用户交互(这不仅禁用播放/暂停,而且禁用几乎所有控件)。您也可以禁用播放控件。请记住,用户有多种暂停方式,包括单击触摸屏,使用其他类型的遥控器或告诉Siri“暂停”,这两种方式均不会导致常规的暂停按钮事件。
如果您要确定视频何时暂停,则可以通过键值观察播放器的“ rate”属性(由于其他原因(例如,由于播放达到结束)。