Silverlight MediaElement,选择本地光盘文件

本文关键字:光盘 文件 选择 MediaElement Silverlight | 更新日期: 2023-09-27 18:26:28

我正在尝试制作一个媒体播放器,您可以选择从url或本地光盘渲染文件。我没有问题,使它打开并呈现url文件

void LoadVideo_Click(object sender, RoutedEventArgs e)
        {
            LoadVideo.IsEnabled = false;
            mediaElement.Source = new Uri(path, UriKind.Absolute);

string path = "http://www.blablabla.com/movie.wmv"

当我试图指定本地光盘文件路径(如"c:''movie.wmv"或@"c:''moile.wmv")时,就会出现问题。这样根本不起作用。

据我所知,除了那些已经在项目目录中的文件外,你还不能直接访问硬盘上的文件。我想做的是:

  • 使用对话框可以选择要打开的文件
  • 将文件的路径保存到字符串中,并将其传输到MediaElement.Source

不幸的是,我不知道该怎么做。如果有任何建议,我将不胜感激。

Silverlight MediaElement,选择本地光盘文件

给你,这应该可以做到:

        OpenFileDialog fdlg = new OpenFileDialog(); //you need to use the OpenFileDialog, otherwise Silverlight will throw a tantrum ;)
        fdlg.Filter = "MP4 Files|*.mp4|AVI files|*.avi"; //set a file selection filter
        if (fdlg.ShowDialog() != true) //ShowDialog returns a bool? to indicate if the user clicked OK after picking a file
            return;
        var stream = fdlg.File.OpenRead(); //get the file stream
        //Media is a MediaElement object in XAML
        Media.SetSource(stream); //bread and butter
        Media.Play(); //no idea what this does

下面是一个关于如何使用OpenFileDialog的详细示例。至于MediaElement,您可以在上面的代码中看到,您所需要的只是SetSource()方法(而不是Source属性)。