C#WPF媒体视频播放器不';开始
我尝试在WPF上制作媒体播放器 我做了这个:C#WPF媒体视频播放器不';开始,c#,wpf,video,media-player,C#,Wpf,Video,Media Player,我尝试在WPF上制作媒体播放器 我做了这个: public partial class MyMediaPlayer : Window { public MyMediaPlayer() { InitializeComponent(); // OpenFileDialog dlg = new OpenFileDialog(); dlg.InitialD
public partial class MyMediaPlayer : Window
{
public MyMediaPlayer()
{
InitializeComponent();
//
OpenFileDialog dlg = new OpenFileDialog();
dlg.InitialDirectory = "c:\\"; // init
dlg.Filter = "All Files (*.*)|*.*"; // filter
dlg.RestoreDirectory = true;
// dialog window
if (dlg.ShowDialog() == true) // checked ?
{
string selectedFileName = dlg.FileName; // path of the media
MediaPlayer player = new MediaPlayer();
player.Open(new Uri(selectedFileName, UriKind.Relative));
VideoDrawing aVideoDrawing = new VideoDrawing();
aVideoDrawing.Rect = new Rect(0, 0, 100, 100);
aVideoDrawing.Player = player; // play
// never play
player.Play();
}
}
}
以及XAML文件:
<Window ... >
<Grid>
<MediaElement Margin="10,10,10,0 " Source="D:\test.avi"
Name="McMediaElement"
Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Stop" Stretch="Fill"
/>
</Grid>
</Window>
但是,视频从未启动,窗口保持白色
请帮忙:)
ps:很抱歉我的英语不好MediaPlayer类():
MediaPlayer不同于MediaElement,因为它不是
控件的用户界面(UI)中直接添加的控件
应用要显示使用MediaPlayer加载的媒体,请使用VideoDrawing
或者必须使用DrawingContext
因此,如果您想使用MediaPlayer,您应该使用DrawingBrush
class:
...
string selectedFileName = dlg.FileName;
MediaPlayer player = new MediaPlayer();
player.Open(new Uri(selectedFileName, UriKind.Relative));
VideoDrawing aVideoDrawing = new VideoDrawing();
aVideoDrawing.Rect = new Rect(0, 0, 100, 100);
aVideoDrawing.Player = player;
player.Play();
DrawingBrush DBrush = new DrawingBrush(aVideoDrawing);
this.Background = DBrush;
...
在这个解决方案中,您不必在XAML中添加MediaElement
要仅在XAML中播放媒体,请使用MediaElement
()
XAML:
@user1785316您是否可以准备示例解决方案并上传到skydrive?
<MediaElement Name="McMediaElement" Source="D:\test.avi"
LoadedBehavior="Play" UnloadedBehavior="Stop" Stretch="Fill"
Margin="10,10,10,0" Width="450" Height="250"
/>
public MainWindow()
{
InitializeComponent();
OpenFileDialog dlg = new OpenFileDialog();
dlg.InitialDirectory = "c:\\";
dlg.Filter = "All Files (*.*)|*.*"; // filter
dlg.RestoreDirectory = true;
if (dlg.ShowDialog() == true)
{
string selectedFileName = dlg.FileName;
McMediaElement.Source = new Uri(selectedFileName, UriKind.Absolute);
}
}