c# winform DirectX播放器 可以任意设置宽高比 屏幕拉伸

Posted JackGIS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform DirectX播放器 可以任意设置宽高比 屏幕拉伸相关的知识,希望对你有一定的参考价值。

第一步:dll引用

Microsoft.DirectX.dll

Microsoft.DirectX.AudioVideoPlayback.dll

如果没有的话,可能需要安装微软的DRECTX JDK

directx支持的视频文件格式: (*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat; *.rm; *.rmvb; *.flv)|*.avi; *.mov; *.mpg; *.mpeg; *.ts; *.wmv; *.vob; *.dat; *.rm; *.rmvb; *.flv";

第二步:开发代码

ourVideo = new Video(fileName);//视频文件路径
                    ourVideo.Ending += new EventHandler(ourVideo_Ending);//注册视频播放完成事件
                    ourVideo.Owner = this.picPlayWindow;//指定播放媒介pictureBox

                    
                    ourVideo.Play();

                    duration = ourVideo.Duration;

private Video ourVideo = null;

ourVideo.Stop();

ourVideo.Dispose();

ourVideo.Fullscreen = true;

第三步:设定屏幕拉伸和宽高比

这个的设定是,通过设定pictureBox的大小和位置实现的。

if (common.isFullScreen == true)
            {
                this.picPlayWindow.Width = players1.Width - 2;
                this.picPlayWindow.Height = players1.Height - 2;

                this.picPlayWindow.Location = new Point(2, 2);
                this.picPlayWindow.Visible = true;
            }
            else
            {
                Size ds = ourVideo.DefaultSize;

                this.picPlayWindow.Width = players1.Width - 2;
                this.picPlayWindow.Height = players1.Width * ds.Height / ds.Width;

                int x = 2;
                int y = players1.Height / 2 - this.picPlayWindow.Height / 2;
                this.picPlayWindow.Location = new Point(x, y);
                this.picPlayWindow.Visible = true;
            }

 

以上是关于c# winform DirectX播放器 可以任意设置宽高比 屏幕拉伸的主要内容,如果未能解决你的问题,请参考以下文章

如何从使用directx c# visual studio播放的视频中获取和处理每一帧(位图图像​​)

C# winform,使用 Microsoft.DirectX.AudioVideoPlayback dll 中的视频/音频类后应用程序崩溃

几种C#实现播放声音的方法

C# DirectX 音频/视频播放“VFW_E_UNSUPPORTED_STREAM”

使用 C#、DirectX 和 XNA 播放音频和最终用户的要求

c# using Microsoft.DirectX.AudioVideoPlayback 如何在一个视频完成后播放下一个视频