Xamarin.Forms AVPlayer 从方法退出全屏

问题描述

我有一个 Xamarin 应用程序,它播放视频 30 秒,然后显示一个对话框。用户可以继续观看(关闭对话框)或点击对话框中的操作(然后应关闭全屏并在应用中的其他位置导航)。

我有这个在模拟器上工作。但是,当我在真实的 iOS 设备上运行以下代码时,应用程序崩溃了,没有任何堆栈跟踪。

viewmodel.cs

var openLink = await _userDialogs.ConfirmAsync("...",cancelText: "dismiss",okText: "Yes");

if (openLink)
{
    await _navigationService.Close(scope);

    MessagingCenter.Send(Application.Current,"CloseFullscreen");
}

VideoRenderer.cs

_playerViewController = new AVPlayerViewController()
{
    ExitsFullScreenWhenPlaybackEnds = true
};

player = new AVPlayer();
_playerViewController.Player = player;

...

SetNativeControl(_playerViewController.View);

 MessagingCenter.Subscribe<Xamarin.Forms.Application>(this,"CloseFullscreen",(app) =>
 {
     BeginInvokeOnMainThread(() =>
     {
         var selectorName = "exitFullScreenAnimated:completionHandler:";

         var selector = new ObjCRuntime.Selector(selectorName);

         if (_playerViewController.RespondsToSelector(selector))
             _playerViewController.PerformSelector(selector,NSObject.FromObject(true),0);
     });
});

请注意,由于此错误,我使用 CrossMediaManager 插件https://github.com/Baseflow/XamarinMediaManager/issues/629

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)