如何使用 MediaElement 播放本地媒体文件(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)
重要的 API
l MediaElement
l FileOpenPicker
l OpenAsync
说明
步骤1:
在使用 C++、C# 或 Visual Basic 的 Windows 应用商店应用中,可通过使用 MediaElement类实现音频和视频播放。Source属性指定要播放的媒体文件。它可以是网络上的文件,应用程序附带的文件或者本地系统上的文件。对于网络上的文件或嵌入应用程序的文件,只需将Source属性设置为文件路径即可。 若要打开本地系统上的文件,可以使用 FileOpenPicker。
本主题介绍如何使用 FileOpenPicker类打开并播放本地媒体文件。
步骤2: 设置功能
若要启用对本地系统上媒体库的访问,应用必须在应用部件清单(manifest) 中包括Music Library Access 功能。
1.在 Microsoft Visual Studio Express 2012 for Windows 8 中,通过双击解决方案资源管理器中的
package.appxmanifest项,打开应用程序清单设计器。
2.单击“功能”。
3.选中“视频库访问”或“音乐库访问”框。
步骤3: 创建 MediaElement
创建 MediaElement对象并为它提供 Name。为对象提供名称后,便可以轻松地在代码文件中对它进行访问。<MediaElement Name="mediaControl" Height="400" />
步骤4: 使用 OpenFilePicker 获取文件
使用 FileOpenPicker类从用户的视频库中选择媒体文件。在 FileOpenPicker上设置 SuggestedStartLoc
ation和 FileTypeFilter属性。 调用 PickSingleFileAsync可启动文件选取器并获取文件。
1 var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
2 openPicker.SuggestedStartLocation =
3 Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
4 openPicker.FileTypeFilter.Add(".wmv");
5 openPicker.FileTypeFilter.Add(".mp4");
6 var file = await openPicker.PickSingleFileAsync();
步骤5: 设置源并播放媒体
若要将MediaElement的 Source设置为从FileOpenPicker返回的 StorageFile,我们需要打开流。 StorageFile上的 OpenAsync方法返回可传入 MediaElement.SetSource的流。然后调用 MediaElement上的 Play以启动媒体。
1 var stream = await file.OpenAsyn(Windows.Storage.FileAccessMode.Read);
2 // mediaControl is a MediaElement defined in XAML
.wmv3 mediaControl.SetSource(stream, file.ContentType);
4 mediaControl.Play();
完整示例
以下示例显示了用于从用户的视频库中选择文件并将其设置到 MediaElement的 Source的完整代码清单。
1 async private void SetLocalMedia()
2 {
3 var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
4 openPicker.SuggestedStartLocation =
5 Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
6 openPicker.FileTypeFilter.Add(".wmv");
7 openPicker.FileTypeFilter.Add(".mp4");
8 var file = await openPicker.PickSingleFileAsync();
9 var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
10 // mediaControl is a MediaElement defined in XAML
11 mediaControl.SetSource(stream, file.ContentType);
12 mediaControl.Play();
13 }
相关主题
12下一页