前言

  关键字:C# Microsoft.DirectX.AudioVideoPlayback、C# 播放器

  无言。

正文

  一、支持播放多媒体文件类型

    ".avi"、".wmv"、".mpeg"、".mpg"

  二、准备

    Microsoft.DirectX.AudioVideoPlayback命名空间在Framework中并包含,需要单独的安装Microsoft DirectX SDK,为了方便,这里提供两个必须的dll直接使用:Microsoft.DirectX.rar。

    

  三、实现

    新建Winform项目,引用命名空间: using Microsoft.DirectX.AudioVideoPlayback;

    3.1  初始化

            Video movie;
            Microsoft.DirectX.AudioVideoPlayback.Audio audio;

path = path.ToLower();
            if (path.StartsWith("http://") || path.StartsWith("https://"))
                movie = Video.FromUrl(new Uri(path), true);
            else
                movie = Video.FromFile(path);

audio = movie.Audio;

      代码说明:

        a).  注意变量movie与audio是作为类的成员变量。

        b).  Video支持本地/远程视频文件播放。

        c).  这里不贴关于path的验证代码,自行加上即可。

    3.2  常用方法和属性

      Play  播放

      Stop  停止播放

      Pause  暂停

      CurrentPosition与Duration配合控制总进度和当前进度(位置)

      audio.Volume  控制声音大小,注意范围

    3.3  停止播放和释放资源

            try
            {
                movie.Stop();
                if (audio != null)
                    audio.Dispose();
                audio = null;
                if (movie != null)
                    movie.Dispose();
                movie = null;
            }
            catch
            {
                try
                {
                    movie = null;
                }
                catch { }
            }

    代码说明:

      当播放完毕之后需要调用这段代码释放资源。

  四、注意

    4.1  声音设置

      声音的设置范围为0到-10000。如果你的控件是0到100可以用公式:value * 100 - 10000。

    4.2  Video对象释放的问题

      在Dispose之前判断一下Video对象为不为null就可以了,之前也找了蛮多资料,直接Dispose的话代码会不继续往下执行了,甚至都没法try得到。

    4.3  播放完毕的委托

      movie.Ending这里并没有成功,我这里也是用的定时器,在定时器里面判断比较CurrentPosition与Duration,但是这里有个问题注意,有可能播放完了CurrentPosition也不等于Duration,所以需要额外处理,判断记录一下上一次CurrentPosition的值,如果两次相等,那么也应该是结束了,这里定时器我设置为1秒。

结束语

  上月末(09年12月)也正式上班了,算是给我一份新年礼物吧,比较中意,总算是到了起码福利正规的企业,有了很多可以讨论的同事,好好把握一下,准备扎根了 :) 现在在从事手机方面的开发,估计一段时间之后可能会写点那方面的文章。

C# Winform播放多媒体文件 [AudioVideoPlayback ]相关推荐

  1. WinForm播放视频

    原文:WinForm播放视频 1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的 ...

  2. Android开发(4) | 系统权限、MediaPlayer类 和 VideoView类 的应用——播放多媒体文件

    文章目录 MediaPlayer类 播放音频的实例 VideoView类 播放视频的实例 MediaPlayer类 对多种格式的音频文件提供了全面的控制方法: 如何获得MediaPlayer实例? 通 ...

  3. c# 海康威视 Winform播放mp4视频

    最近有个视频播放系统,需要对海康的mp4格式视频进行播放,由于普通播放器无法对该视频进行播放原因是海康对视频进行了自己的编码,需要相应的解码才可以对视频进行播放. 下面是对海康威视视频播放的c#代码( ...

  4. C# Winform使用Windows Media Player播放多媒体整理

    一.简单使用示例步骤 1.添加Windows Media Player 组件当前是系统的 Com组件 工具箱>右键"选择项">选择Com组件 2.控件拖拽到桌面,使用 ...

  5. 使用media player控件播放歌曲 winform

    使用media player控件播放歌曲 winform 播放格式 媒体播放控件.URL = 媒体路径 媒体路径可以是绝对路径 也可以是相对路径 媒体格式 视频 音频 功能演练 来一个按钮 编写事件代 ...

  6. 声音的播放——MCI的使用

    很多朋友向我索取MCI的资料,但是我这里的资料早就不知道哪里去了,这里把MSDN里面的东西拿出来给大家看一下,方便英语不好的朋友. 用MCI进行编程主要有两个东西需要掌握,下面的篇幅用来说明这两个方面 ...

  7. windows 播放声音 c语言,Windows 音频播放方法

    音频播放是一个游戏不可或缺的部分,优质的音乐和特效可以把游戏的质量整体上升一个层次.播放声音的方法很多,Windows 本身就支持简单的声音播放,但是如果想要更高级的特效,就需要专门的音效引擎了.教程 ...

  8. MetroMusic音乐播放器开发心得

    MetroMusic音乐播放器开发心得 在这个假期,我独立开发了自己的音乐播放器MetroMusic,之所以叫做MetroMusic,是因为这个播放器的界面采用目前最为流行的win8Metro风格.这 ...

  9. mciSendString函数简介(播放音乐以及录音相关操作)

    函数功能:播放多媒体音乐,视频等 mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等.这个函数有自己的mci指令,可以通过不同的指令实现不同的功 ...

最新文章

  1. C++ Primer练习题day1
  2. 机器学习笔记:CNN卷积神经网络
  3. Docker的界面话管理工具
  4. Spring中基于Java的配置@Configuration和@Bean用法
  5. NgRx Store createSelector 返回的 selector 执行取数逻辑的单步调试
  6. Redis的常用功能
  7. 最新教程:Python开发钉钉群自定义机器人
  8. redis指定配置文件启动_redis基础知识整理-安装
  9. cad加载dll_你的CAD为什么安装不上?进来看看你就知道了
  10. [Python] L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
  11. assoc fetch mysql 用法_mysql_fetch_assoc、mysql_fetch_object、mysql_fetch_row、mysql_fetch_array用法学习...
  12. android 文件加密源码
  13. input 上传图片_selnium远程机上传图片遇到的坑-布布扣
  14. CAN和CAN FD
  15. 水星路由器登录界面找不到服务器,新版水星(Mercurey)路由器后台登陆界面打不开解决方法...
  16. 指数分布的期望和方差
  17. 关于java开发阿里云视频直播的使用及掉坑、爬坑,欢迎入坑交流
  18. python编辑器windows_windows下sublime Text 3 做Python编辑器 详细配置
  19. 智能家居DIY创意之智能灯泡
  20. python和vb基础哪个简单_python和VB哪个更容易学习入门呢?

热门文章

  1. 安卓反编译揭秘,伪加密APK文件如何被破坏
  2. ipsec说明以及隧道案例
  3. Android 实例解说Application类
  4. 理解 Android 的 ONE_SHOT_MAKEFILE
  5. Android通话记录CallLog简单摘要
  6. android signal 处理总结
  7. RN与原生交互(二)——数据传递
  8. How to read MANIFEST.MF file from JAR using Bash
  9. 顺应大数据时代创新社会治理模式
  10. 9-8 更新 - 2017 Citrix partner webinar PPT及在线观看地址