我正在尝试动态设置视频.mv4文件作为我的Windows 8应用中媒体元素的来源。
var x = new MediaElement { Source = new Uri("ms-appx:/Assets/vid1.mv4") };
this.DefaultViewModel["Video"] = x;
我在XAML cs文件中使用此代码,试图将其绑定到XAML页面中设置的Medai元素
<Paragraph Margin="0 40 0 0" LineStackingStrategy="MaxHeight">
<InlineUIContainer>
<MediaElement x:Name="media"
Source="{Binding Video}"
Width="500" Height="300" AutoPlay="True" />
</InlineUIContainer>
</Paragraph>
但这不起作用。但是,如果我直接在XAML页面Source="Assets/vid1.m4v"
上的媒体元素中设置源,它就可以正常播放。
如何在C#中设置视频以绑定到XAML Windows 8应用页面?
答案 0 :(得分:2)
你可以试试这个
var x = new MediaElement { Source = new Uri("ms-appx:///Assets/vid1.mv4") };
答案 1 :(得分:2)
<MediaElement Source="{Binding Url}" />
无效。您需要使用ContentControl
。查看下面给出的代码。
<ContentControl Content="{Binding Video}" />
var x = new MediaElement { AutoPlay = true };
x.Loaded += MediaElement_Loaded;
private async void MediaElement_Loaded(object sender, RoutedEventArgs e)
{
var file = await KnownFolders.VideosLibrary.GetFileAsync(await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/vid1.mv4"));
var stream = await file.OpenAsync(FileAccessMode.Read);
x.SetSource(stream, file.FileType);
DataContext = x;
}
来自:Binding MediaElement to a ViewModel in a Windows 8 Store App