C# 调用APlayer教程

APlayer介绍

引擎介绍:

APlayer 媒体播放引擎是迅雷公司从 2009 年开始开发的通用音视频媒体文件播放内核。 
迅雷看看播放器和迅雷影音就是使用 APlayer 做为播放内核,目前迅雷看看播放器在PC播放器市场占有率排第一。
本质上APlayer播放引擎是一个ActiveX控件,能够被本地其余外部程序嵌入调用,也能够直接被网页嵌入,相似于(Adobe Flash Player)。APlayer不包含界面,但另外一个依赖于APlayer的ActiveX控件APlayerUI能够提供丰富的界面元素(播放控制条,Flash广告等),APlayerUI 也被包含在 APlayerSDK 中。

APlayer特色:

封闭式 DirectShow 架构,不受系统解码环境干扰
全媒体文件格式支持
丰富的媒体文件传输协议(http/ftp/mms/rtsp/rtmp/hls等)
强大的附加功能(字幕、音轨、转码/转格式、画质加强、截GIF……)
支持将多个 ts/flv/mp4 分段切片文件组成 m3u8 无缝播放
支持最新的 H.265(HEVC) 解码 (Powered by北京视骏科技有限公司)
支持全景视频和虚拟现实(VR)眼镜 Oculus DK2 的播放。

APlayer下载

建议直接到APlayer官网下载最新版本架构

APlayer安装

先下载SDK和解码库,下载后先解压SDK,解压后SDK根目录以下
工具

其中bin目录中存放的就是一些dll文件和解码库,docs目录下是官方帮助文档,include目录下是什么我也不知道,samples目录下是官方的demo,不过貌似是C++的。咱们须要用到的只有bin目录和docs目录下的东西。spa

接下来打开bin目录,将下载的解码库解压到bin目录下,覆盖原有的空解码库文件夹(codecs文件夹),覆盖完成后退回SDK根目录,打开cmd(怎么打开确定不用说吧),跳转到SDK根目录,执行install.bat,等待完成后就能够关掉了。code

接下来打开VS,新建一个Winform项目,完成后再工具箱空白处右键>添加选项卡 ,而后将新建的选项卡命名为APlayer,而后在新建的选项卡上右键>选择项,而后在打开的窗口上选择COM
orm

而后里面有个APlayer3 Control,把前面的复选框选中,而后点击肯定就OK了,若是你的里面没有,那么请重复第二步,而且以管理员权限运行cmd。
视频

点击肯定后APlayer选项卡中就有一个APlayer3 Control组件了,拖到窗体上就能用了。blog

到这一步还没完,由于如今你写的程序,发给别人后,别人还要安装APlayer才行,想要直接发给别人就能够用的话,须要先打开解决方案资源管理器,选中引用中的APlayer3Lib,而后打开属性面板,将里面的独立属性和嵌入互操做性属性改为True
事件

到此APlayer就安装完成了(貌似后面的部分已经不属于APlayer的安装范围了 =.=)ip

APlayer使用

接下来是APlayer的使用,先打开APlayerSDK根目录下的docs文件夹里面的官方手册(APlayer.chm)资源

手册目录里面的什么IDL定义啊什么的都不用看,和C#没什么关系,主要是看APlayer方法、事件和设置。

APlayer方法

APlayer方法没什么好说的,也就是APlayer.方法名(参数),每一个方法是干吗的也有解释,写播放器的话我认为这些基础的东西应该都会了吧。

APlayer事件

APlayer虽然在VS属性面板中有事件,可是貌似并无什么用,事件仍是要本身写,因此就讲一下APlayer事件的用法吧,下面用OnMessage事件为栗来说解。

先写个名为OnMessage(方法名能够本身定义,建议直接用事件名)的方法:

/// <summary>
/// OnMessage 事件发生在用户在 APlayer 视频区域引起鼠标操做或者当 APlayer 视频区域拥有焦点时引起键盘操做时。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void OnMessage(object sender,AxAPlayer3Lib._IPlayerEvents_OnMessageEvent e)
{
    // 方法体
}

该方法有两个参数,第一个是object类型,第二个是APlayer内的一个类型,每一个方法对应不一样的类型,举个栗子:

OnMessag事件就是AxAPlayer3Lib._IPlayerEvents_OnMessageEvent 
OnStateChanged事件就是AxAPlayer3Lib._IPlayerEvents_OnStateChangedEvent 
OnDownloadCodec事件就是AxAPlayer3Lib._IPlayerEvents_OnDownloadCodecEvent

而后在窗口的Load事件里面,将定义的OnMessage方法绑定(委托?拜托?指定?指引?绑架?反正就是这个意思而已)

APlayer.OnMessage += new AxAPlayer3Lib._IPlayerEvents_OnMessageEventHandler(OnMessage);

绑定的方法就是:

APlayer.事件名 += new APlayer中事件对应的类(要绑定的方法名)

再举个栗子:

OnMessage 事件就是: 
APlayer.OnMessage += new AxAPlayer3Lib._IPlayerEvents_OnMessageEventHandler(OnMessage); 
OnStateChanged事件就是: 
APlayer.OnStateChanged += new AxAPlayer3Lib._IPlayerEvents_OnStateChangedEventHandler(OnStateChanged); 
OnDownloadCodec事件就是: 
APlayer.OnDownloadCodec += new AxAPlayer3Lib._IPlayerEvents_OnDownloadCodecEventHandler(OnDownloadCodec);

这样就能够绑定事件了,而后在本身写的方法中写事件触发时要执行的代码。

APlayer设置

APlayer设置的话主要是经过GetConfig和SetConfig方法来完成,GetConfig用于获取设置的值,SetConfig用于设置对应设置的值。

返回值:string GetConfig(int 设置编号)
返回值:int GetConfig(int 设置编号,string 设置值)
设置编号能够查看官方手册中的 “APlayer 设置” 章节

Demo下载

我找了两个Demo,能够下载看看,里面还有设置logo的方法 
Demo下载      APlayer

相关文章
相关标签/搜索