使用Xamarin Forms退出全屏MediaElement调用MainPage OnAppearing()

问题描述 投票:0回答:1

如本文档所述,我已将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

ios xamarin.forms fullscreen mediaelement video-player
1个回答
0
投票

使用TabPage应用程序将我的MasterDetailsPage升级到新的Xamarin.Forms Shell解决了此问题。

© www.soinside.com 2019 - 2024. All rights reserved.