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 に答える