none
mediaPlayerElement баг при воиспроизведении трансляции HLS RRS feed

  • Общие обсуждения

  • Здравствуйте! Только начинаю знакомиться с UWP
    Хочу написать свой плеер для просмотра тв трансляций по технологии HLS
    Пробовал разные элементы управления Windows Form C#, наконец дошли руки до mediaPlayerElement, mediaPlayer UWP. Порадовало что требуется всего несколько строчек кода, чтоб по ссылке на Манифест трансляции начать её воспроизведение. Установил флажок Воспроизведение мультимедиа в фоне в package.appxmanifestв  Но вскоре обнаружил досадную проблему - если скрыть окно приложения с помощью соответствующей кнопки в заголовке окна (минимизировать окно), и через некоторое время активировать его, трансляция смещается на несколько секунд назад или вперёд, такое чувство что плеер "самопроизвольно" переподключается к серверу и воспроизводит с начала текущий чанк или следующий. С другой стороны, если приложение не минимизировать, а активировать другое приложение, затем снова переключиться на плеер, такого эффекта не происходит, трансляция продолжается как ни в чём не бывало.
    Собственно, как справиться с этой проблемой?
    4 сентября 2019 г. 6:47

Все ответы

  • Приветствую.

    Все зависит от кода и настроек приложения написанного вами...


    Я не волшебник, только учусь. MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку "Отметить как ответ" или проголосовать за "полезное сообщение". Disclaimer: Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть, без каких-либо на то гарантий. Блог IT Инженера, Яндекс Дзен, YouTube, GitHub.

    4 сентября 2019 г. 10:13
    Модератор
  • ну вот самый простой код. что называется - ничего лишнего, баг проявляется уже на этом этапе

    код C#

    using System;
    using Windows.Media.Core;
    using Windows.Media.Playback;
    using Windows.UI.Xaml.Controls;
    
    // Документацию по шаблону элемента "Пустая страница" см. по адресу https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x419
    
    namespace App1
    {
        /// <summary>
        /// Пустая страница, которую можно использовать саму по себе или для перехода внутри фрейма.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public MainPage()
            {
                this.InitializeComponent();
                MediaPlayer mediaPlayer = new MediaPlayer();
                _mediaPlayerElement.SetMediaPlayer(mediaPlayer);
                mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("http://178.162.205.76/video/ChK2qFm8qIpPgnwkNjfr8Q/9/playlist.m3u8"));
                mediaPlayer.Play();
            }
        }
    }
    

    XAML

    <Page x:Class="App1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App1" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <MediaPlayerElement x:Name="_mediaPlayerElement" AreTransportControlsEnabled="True"

    HorizontalAlignment="Stretch" Grid.Row="0"/> </Grid> </Page>

    Может не вполне точно выразился, повторюсь - если свернуть окно, и через некоторое время развернуть трансляция смещается на несколько секунд назад или вперёд. Если просто щёлкнуть по другому открытому приложению, перейти в него, затем вернуться в плеер, бага не происходит

    В настройках только установил флажок Воспроизведение мультимедиа в фоне в package.appxmanifestв

    4 сентября 2019 г. 16:08
  • К сожалению, ответа пока нет. Ещё добавлю, что если вместо HLS трансляции, вставить ссылку на видео файл (скажем, на фильм, ролик) смещения не происходит, но при разворачивании окна, звук кратковременно исчезает Может как то переопределить метод активации окна, или изменить какое то свойство Посмотрел один из примеров Microsoft Те же симптомы...

    13 сентября 2019 г. 11:30