0

我正在尝试制作一个媒体播放器,您可以在其中选择从 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:\movie.wmv”)时,会出现问题。它根本行不通。

据我所知,除了已经在项目目录中的文件之外,您无法直接访问硬盘驱动器上的文件。我想做的是:

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

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

4

1 回答 1

1

给你,这应该可以解决问题:

        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属性)。

于 2013-08-06T06:40:35.140 回答