如本文档所述,我已将VideoPlayer实施到我的Xamarin Forms 4.5应用程序中:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/video-player/
播放HLS视频效果很好。但是,当我从iOS上的全屏模式退出时,视频的声音继续在后台播放,并且该应用导航回到我的MasterDetailsPage的根目录。
[当我返回打开视频播放器的页面时,页面应用程序冻结。
如果我在未进入视频播放器全屏模式的情况下播放视频,则一切正常。
我正在使用iOS SDK 13.4。
更新
我切换到新的Xamarin Forms MediaElement(https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/mediaelement)。
现在退出全屏显示时,整个应用程序崩溃。
进入全屏模式时收到此警告:
*** Warning: <AVPlayerViewController: 0x7fcfe36bda00> is trying to enter full screen, but is not in its view's window's view controller hierarchy. This results in undefined behavior.
退出全屏显示时收到此警告:
*** Warning: <AVPlayerViewController: 0x7fcfe36bda00> is trying to exit full screen, but is not in its view's window's view controller hierarchy. This results in undefined behavior.
XAML代码:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.Views.VideoPage">
<MediaElement x:Name="videoPlayer" ShowsPlaybackControls="True" />
</ContentPage>
C#代码:
using System.Collections.Generic;
using Xamarin.Forms;
namespace MyApp.Views
{
public partial class VideoPage : ContentPage
{
public VideoPage(Video videoItem)
{
InitializeComponent();
videoPlayer.Source = videoItem.Url;
}
}
}
更新#2:
我知道了问题,但没有解决方法。退出VideoPlayer全屏模式时,将调用MainPage的OnAppearing()方法。
更新#3:
代码示例以及如何复制可以在我的GitHub问题中找到:https://github.com/xamarin/Xamarin.Forms/issues/10169
使用TabPage应用程序将我的MasterDetailsPage升级到新的Xamarin.Forms Shell解决了此问题。