zoukankan      html  css  js  c++  java
  • C#实现视频播放器(Vlc.DotNet)

    在介绍怎么用C#实现播放器之前,先说明下为什么选择C#。随着.NET Core的发布,使得.Net支持跨平台,并且支持独立打包的方式发布,使得使用C#开发不再需要依赖.Net环境。

    使用C#实现播放器,有以下几种方式:

    1、使用MediaPlayer ActiveX控件;

    2、使用VLC ActiveX控件

    3、使用LIB VLC库

    4、使用FFMPEG库

    第1、2种,都一定依赖客户端环境。如果客户端较少,可以人工维护的话,可以考虑。

    第4种,使用ffmpeg,就拥有了更加底层的api了,此时可以实现更加强大的功能。并且它是跨平台的,对于移动平台的音视频开发也是非常有帮助的。

    今天我们就是采用第3种方式,它不依赖客户端环境,在Github上也有比较完善的对它的封装,具体请看项目Vlc.DotNet。采用这种方式可以实现一些底层的控制,当然了相对于ffmpeg,会少一些。

     

    一、什么是Vlc.DotNet

     

    我们从NuGet可以看到,它包含了这5个类库:

    Vlc.DotNet.Core

    Vlc.DotNet.Core.Interops

    Vlc.DotNet.Wpf

    Vlc.DotNet.Forms

    VideoLAN.LibVLC.Windows

    1)Vlc.DotNet.Forms :是包含winform界面控件的库,使用的时候需要加入到工具箱,再拖拽到界面;是对VLC.DotNet.Core的再次封装。

    2)Vlc.DotNet.Wpf : 包括wpf的,在hood方式下是使用WinForm控件。

    3)Vlc.DotNet.Core 、Vlc.DotNet.Core.Interops : 基础依赖包,如果是转换、编解码、做服务不需要界面的,可以考虑用这个来实现。

    4)VideoLAN.LibVLC.Windows:应用于安装libvlc库,分为win-x64和win-x86。

    今天我们是开发界面应用,使用到是Vlc.DotNet.Forms和VideoLAN.LibVLC.Windows,我们只要安装这两个就可以。

     

    二、控件使用

     

    我们安装相应的类库后,在工具箱就可以看到相应的控件,只要把它拖进相应的界面就可以。

    这一步做完后,使用上有一个需要注意的,就是需要指定一下libvlc库的位置,否则会报错。虽然装了VideoLAN.LibVLC.Windows包,但这里不会自动配置。控件初始化是会触发VlcLibDirectoryNeeded事件,在这个事件中配置libvlc的地址,如果,你不安装上面的VideoLAN.LibVLC.Windows包,可以制定另外的地址。

     

     

    三、视频播放

    //网络媒体播放
    var videoUri =new Uri("udp://@:ip:port");
    vlcControl.Play(videoUri );
    
    //本地文件播放
    vlcControl.Play(new FileInfo("本地视频路径"));
    

     

    四、实际效果

    最后我们一起来看看最终实现的效果,以下视频是我开发的视频、图片去水印的工具。

    视频、图片去水印

     转自:https://zhuanlan.zhihu.com/p/204998521?utm_source=com.microsoft.todos

  • 相关阅读:
    linux内核中如何访问寄存器?
    uboot加载itb文件后提示"ERROR: new format image overwritten"如何处理?
    如何单独编译Linux内核源码中的驱动为可加载模块?
    openwrt如何打开linux内核的CONFIG_DEVMEM选项?
    openwrt的shell下如何访问寄存器的内容?
    linux系统错误码大全
    第 3 章 文本元素
    第 2 章 基本格式
    第 1 章 HTML5 概述
    第 20 章 项目实战--案例和关于[7]
  • 原文地址:https://www.cnblogs.com/javalinux/p/14544306.html
Copyright © 2011-2022 走看看