WPF MediaElement с исходным URL никогда не имеет HasTimeSpan? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь воспроизвести видео с источника URL. Когда MediaOpened запущен, тест в

private void OnMediaOpened(object sender, EventArgs e)
{
    if (mediaView.NaturalDuration.HasTimeSpan)
    {
        // ...
    }
    // ...
}

всегда возвращает значение false, и позиционирование в промежутке времени носителя невозможно.

Примечание: если я использую файл в качестве источника, то HasTimeSpan имеет значение true и MediaElement.NaturalDuration.TimeSpan может быть получено.

Всегда ли это относится к источникам на основе URL?

Есть ли другой способ получить продолжительность мультимедиа для источников на основе URL?

Я использую .net 4.6.1.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Пока что не могу воспроизвести проблему, описанную в моем вопросе. Видео от моего Tomcat через сервлет (см. Мой комментарий к ответу HYA) теперь имеет промежуток времени. Интересно, связано ли это с «незначительным» обновлением в .Net framework.

0 голосов
/ 16 ноября 2018

Кажется, проблема в видеоформате, который вы используете.Я проверил этот код, и он отлично работает.

XAML:

 <MediaElement
            x:Name="mediaView"
            MediaOpened="OnMediaOpened"
            Source="http://mirrors.standaloneinstaller.com/video-sample/Panasonic_HDC_TM_700_P_50i.mp4" />

Код:

 private void OnMediaOpened(object sender, RoutedEventArgs e)
        {
            if (mediaView.NaturalDuration.HasTimeSpan)
            {
                MessageBox.Show("It has TimeSpan and its duration is : " + Convert.ToString(mediaView.NaturalDuration) );
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...