问题描述
我有一个 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 (将#修改为@)