Пользовательские свойства MediaStreamSource и MediaElement.Naturalduration - PullRequest
2 голосов
/ 02 августа 2010

Я написал собственный источник медиастрим, который может воспроизводить мультимедиа из растущих исходных файлов (транспортные потоки mpeg).Как только он достигает конца своего медиапотока, он читает новую длительность из медиафайла и продолжает доставлять образцы.MediaElement воспроизводится непрерывно.

К сожалению, я не нашел способа обновить свойство MediaElement.NaturalDuration.Следовательно, я не могу искать в «перезагруженной» области, потому что ME не знает об этом и устанавливает для моего изменения позиции значение NaturalDuration.

Я попытался вызвать ReportOpenMediaCompleted после получения новой длины потока.Затем Naturalduration get обновляется, но я больше не могу играть.

Есть ли другой способ справиться с этим?

1 Ответ

1 голос
/ 02 августа 2010

Иногда жизнь может быть такой простой: -)

Я решил, что при инициализации моего MediaStreamSource он дал MediaElement значение «фантазии»:

protected override void OpenMediaAsync()
{
...
mediaSourceAttributes[MediaSourceAttributesKeys.Duration] = TimeSpan.FromHours(10).Ticks.ToString(CultureInfo.InvariantCulture);
this.ReportOpenMediaCompleted(mediaSourceAttributes, mediaStreamDescriptions);
}

Единственное, что осталось сделать, это обновить мой ползунок с «реальной» продолжительностью. Теперь это работает как шарм ...

Тило

...