Выход из полноэкранного режима с помощью Xamarin Forms MediaElement вызывает MainPage OnAppearing () - PullRequest
0 голосов
/ 30 марта 2020

Я реализовал VideoPlayer в своем приложении Xamarin Forms 4.5, как описано в этой документации: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/video-player/

Воспроизведение видео HLS работает хорошо. Однако, когда я выхожу из полноэкранного режима на iOS, звук видео продолжает воспроизводиться в фоновом режиме, и приложение возвращается к root моего MasterDetailsPage.

Когда я возвращаюсь на страницу, которая открывает видеопроигрыватель, приложение страницы зависает.

Все работает нормально, если я воспроизводю видео, не входя в полноэкранный режим видеопроигрывателя.

Я использую iOS SDK 13.4.

Обновление

Я перешел на новый MediaElement Xamarin Forms (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 вызывается метод OnAppearing () главной страницы.

Обновление № 3:

Пример кода и способ воспроизведения можно найти в мой выпуск GitHub: https://github.com/xamarin/Xamarin.Forms/issues/10169

1 Ответ

0 голосов
/ 08 апреля 2020

Обновление моего MasterDetailsPage с приложением TabPage до новой оболочки Xamarin.Forms Shell устранило эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...