如何在wpf媒体播放器中播放视频?

时间:2012-02-21 12:47:57

标签: c# wpf

我在wpf开发了一个媒体播放器,但它没有播放。正常加载,但视频无法播放。打开视频文件后,视频无法播放。通过使用播放按钮也不会播放。我不知道问题在哪里?

这是我的.cs文件代码:

namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            mediaElement1.Play();//play button code

        }



        private void button2_Click(object sender, RoutedEventArgs e)
        {
            mediaElement1.Pause();//pause button code
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            mediaElement1.Stop(); //stop button code
        }

        private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
        {
            slider1.Maximum = mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds;
            slider1.IsEnabled = mediaElement1.IsLoaded;

            slidervolume.IsEnabled = mediaElement1.IsLoaded;

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

        }

        private void file_click(object sender, RoutedEventArgs e)
        {

//opening video file into our media element
            OpenFileDialog ofd;
            ofd = new OpenFileDialog();
            ofd.AddExtension = true;
            ofd.DefaultExt = "*.*";
            ofd.Filter = "media (*.*)|*.*";
            ofd.ShowDialog();

            mediaElement1.Source = new Uri(ofd.FileName);
            mediaElement1.Play();

        }

    }
}

2 个答案:

答案 0 :(得分:2)

您必须将媒体元素加载行为设置为手动,以便您可以手动暂停,停止和播放媒体元素。如果不将其设置为手动,则无法处理暂停,播放和停止等操作。

以下行适合您。

 mediaElement1.LoadedBehavior = MediaState.Manual;
 mediaElement1.Play();

答案 1 :(得分:1)

检查视频格式和已安装的编解码器。

并检查一下:http://msdn.microsoft.com/en-us/magazine/cc163455.aspx#S1

来自维基百科:默认情况下,WPF支持视频格式WMV,MPEG和一些AVI文件,但由于它下面运行的是Windows Media Player,WPF可以使用为其安装的所有编解码器。

尝试使用基本的WMV文件(mpeg 2)。