Aplayer模块不用APlayerCaller也可以播放

易语言 2020-02-22 13:17:17

Aplayer模块不用APlayerCaller也可以播放

.子程序 创建, 整数型, 公开, 创建一个播放器窗口 成功返回窗口句柄 失败返回0 需要 .安装() 后成效 推荐此方法
.参数 参数_父窗口句柄, 整数型, , 父窗口的窗口句柄
.参数 参数_左边, 整数型, , 播放器在父窗口的左边位置
.参数 参数_顶边, 整数型, , 播放器在父窗口的顶边位置
.参数 参数_宽度, 整数型, , 播放器在父窗口的的宽度
.参数 参数_高度, 整数型, , 播放器在父窗口的的高度
.参数 参数_边框, 整数型, 可空, 样式:1,凹入式;2,凸出式;3,浅凹入式;4,镜框式;5,单线边框式
.参数 事件_OnMessage, 整数型, 可空, HRESULT OnMessage(LONG nMessage, LONG wParam, LONG lParam) 事件发生在用户在 APlayer 视频区域引发鼠标操作或者当 APlayer 视频区域拥有焦点时引发键盘操作时
.参数 事件_OnStateChanged, 整数型, 可空, HRESULT OnStateChanged(LONG nOldState, LONG nNewState) 事件发生在 APlayer 引擎状态改变后
.参数 事件_OnOpenSucceeded, 整数型, 可空, HRESULT OnOpenSucceeded() 事件发生在 APlayer 引擎成功打开一个媒体文件时
.参数 事件_OnSeekCompleted, 整数型, 可空, HRESULT OnSeekCompleted(LONG nPosition) 事件发生在用户进行一个 SetPosition 的异步调用完成后
.参数 事件_OnBuffer, 整数型, 可空, HRESULT OnBuffer(LONG nPercent) 事件发生在 APlayer 从网络缓冲媒体数据的过程中
.参数 事件_OnVideoSizeChanged, 整数型, 可空, HRESULT OnVideoSizeChanged() 事件发生在所播放的视频的分辨率改变时
.参数 事件_OnDownloadCodec, 整数型, 可空, HRESULT OnDownloadCodec(BSTR strCodecPath) OnDownloadCodec 发生在 APlayer 引擎播放某个媒体文件缺少对应的解码器时 BSTR指针 BSTR是宽字符需要WideCharToMultiByte转码
.参数 事件_OnEvent, 整数型, 可空, HRESULT OnEvent(LONG nEventCode, LONG nEventParam) 事件在 APlayer 的特定扩展事件通知时发出
.局部变量 返回句柄, 整数型

.如果真 (Com.取对象 ().是否为空 () = 假)
返回句柄 = 选择 (参数_父窗口句柄 > 0, Com.创建_控件窗口A (参数_父窗口句柄, 参数_左边, 参数_顶边, 参数_宽度, 参数_高度, 参数_边框), 0)
Com.控件_映射事件 (1, 事件_OnMessage)
Com.控件_映射事件 (2, 事件_OnStateChanged)
Com.控件_映射事件 (3, 事件_OnOpenSucceeded)
Com.控件_映射事件 (4, 事件_OnSeekCompleted)
Com.控件_映射事件 (5, 事件_OnBuffer)
Com.控件_映射事件 (6, 事件_OnVideoSizeChanged)
Com.控件_映射事件 (7, 事件_OnDownloadCodec)
Com.控件_映射事件 (8, 事件_OnEvent)
返回 (返回句柄)
.如果真结束
返回 (0)

Aplayer模块脱离APlayerCaller.dll也可以实现使用所有功能 事件响应也可以解决 免Regsvr32.exe注册表 也可以使用播放器控件 完美解决win8 win10下无法自动注册Aplayer.dll的问题。

半开源(Aplayer的全开源了)Com对象的就先不开源了 最主要的还是免注册Regsvr32.exe注~册表 解决任何电脑上都可以正常使用播放器。