【问题标题】:Custom MediaStreamSource and MediaElement.Naturalduration property自定义 MediaStreamSource 和 MediaElement.Naturalduration 属性
【发布时间】:2010-08-02 12:58:20
【问题描述】:

我编写了一个自定义媒体流源,它可以播放来自不断增长的源文件(mpeg 传输流)的媒体。 一旦它到达其媒体流的末尾,它就会从媒体文件中读取新的持续时间并继续传送样本。 MediaElement 持续播放。

不幸的是,我还没有找到更新 MediaElement.NaturalDuration 属性的方法。因此我无法进入“重新加载”区域,因为我不知道它并将我的位置更改设置为其 NaturalDuration 值。

我在获得新的流长度后尝试调用 ReportOpenMediaCompleted。然后 Naturalduration 得到更新,但我不能再玩了。

有没有其他办法处理?

【问题讨论】:

  • 您好,我可以提供您的应用程序的源代码吗?我真的很想知道如何实现这个难题......因为我有同样的问题,但我无法解决它:(如果你能帮助我,我会很感激。非常感谢

标签: c# silverlight media mediaelement mediastreamsource


【解决方案1】:

有时候生活可以如此简单:-)

我解决了它在初始化我的 MediaStreamSource 时给 MediaElement 一个“幻想”持续时间值:

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

剩下要做的就是用“真实”持续时间更新我的滑块控件。 现在它就像一个魅力......

提洛

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2015-09-04
    • 1970-01-01
    • 2011-12-10
    • 2011-03-27
    相关资源
    最近更新 更多