zoukankan      html  css  js  c++  java
  • c# 利用DirectX 播放视频

    在日常的开发项目时,一般都是利用Windows Media Player播放视频,最近做一个项目,用Windows Media Player播放视频时,会遇到播放的时候视频就变成音频了文件了,只有声音没有影像,展现出音频的波纹。但是找了很久原因也没有找到问题的所在。

    后来决定换个插件来播放音频,于是找到了安装暴风影音之类的插件,但是经过自己的实际使用,发现这类播放器的插件添加com组件中,在使用的时候会出现卡死的现象,毕竟这类插件都是非常大的,对于使用现场电脑环境不理想的项目还是不能够使用。

    最终找到了利用DirectX 播放视频,这个使用起来就非常的方便,DirectX 毕竟是电脑自带的,下面介绍DirectX 播放视频的实现方式:

    必须使用的引用:

    using Microsoft.DirectX;
    using Microsoft.DirectX.AudioVideoPlayback;

     private Video video = null;

    /// <summary>
    /// 播放视频
    /// </summary>
    public void playVideo()
    {
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {

    //获取视频路径
    string strFile = openFileDialog1.FileName;
    try
    {

    //判断视频文件是否为空
    if (this.video != null)
    {

    //判断是否已经在播放视频
    if (this.video.Playing)
    {

    //如果已经播放视频了,就先关闭了
    this.video.Stop();
    }
    }

    //取得视频文件
    this.video = new Video(strFile);

    //控制播放视频窗口的大小(此项目是把视频放到一个panel中,panPlayOwner是一个panel)
    int width = this.panPlayOwner.Width;
    int height = this.panPlayOwner.Height;

    this.video.Owner = this.panPlayOwner;
    this.video.Owner.Width = width;
    this.video.Owner.Height = height;
    this.video.Play();
    }
    catch (DirectXException ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    }

    人生像一张洁白的纸,全凭人生之笔去描绘,玩弄纸笔者,白纸上只能涂成一摊胡乱的墨迹;认真书写者,白纸上才会留下一篇优美的文章。
  • 相关阅读:
    Python学习笔记:List类型所有方法汇总
    Python学习笔记:String类型所有方法汇总
    制作“铜墙铁壁”一样的比特币冷钱包的完整流程详解!!
    jpa教程+ 常见的jpa报错以及解决方式
    Hibernate之mappedBy与@JoinColumn
    什么是JPA?Java Persistence API简介
    一文搞懂并发和并行
    清华大学操作系统【mark下】
    一文足以了解什么是 Java 中的锁.
    JDK8日常开发系列:Consumer详解
  • 原文地址:https://www.cnblogs.com/libj/p/6029197.html
Copyright © 2011-2022 走看看