使用Source绑定在Silverlight中播放视频

时间:2011-10-07 20:00:08

标签: silverlight xaml binding

我正在尝试在Silverlight MediaElement中制作WMV视频。它适用于此XAML代码:

        <MediaElement
        x:Name="VideoElement"
        Stretch="Fill"
        Source=""http://ecn.channel9.msdn.com/o9/pdc09/wmv/CL20.wmv""
        Grid.Row="0"
        Grid.Column="0"
        AutoPlay="True"/>

但是当我尝试将源代码绑定到我的代码中的某个属性时:

        <MediaElement
        x:Name="VideoElement"
        Stretch="Fill"
        Source="{Binding VidPath}"
        Grid.Row="0"
        Grid.Column="0"
        AutoPlay="True"/>

VidPath在哪里:

    public Uri VidPath
    {
        get
        {
            return new Uri("http://ecn.channel9.msdn.com/o9/pdc09/wmv/CL20.wmv", UriKind.Absolute);
        }
        set;
    }

它不起作用。你能帮我找出原因吗?

1 个答案:

答案 0 :(得分:1)

首先,我假设这是一个完全信任的浏览器应用程序,否则跨域策略限制会阻止MediaElement播放该视频。

鉴于此,您提供的代码没有任何问题,但我预感到包含MediaPlayer的页面的DataContext设置不正确。如果你在VidPath的getter中放了一个断点,它是否会被击中?我打赌没有。

无论对象包含您的“VidPath”属性,您都希望确保该页面的DataContext。例如。如果你只是将VidPath作为一个属性放在代码隐藏中,你可以将它添加到构造函数中:

this.DataContext = this;