唤起电脑的加密播放器
操作步骤
第一步. 唤起本地播放器
videoId 指课程ID
fileId 指课程下的视频文件IDwindow.location.href ="dhfplayer:"+videoId+"-"+fileId;
播放器会收到传参里的课程ID以及视频ID后会向服务器查询授权情况以决定是否允许播放。
执行上面代码后,建议加一个动画过渡,三秒后再执行websocket连接播放器,以判断是否唤起成功。
第二步. 检测播放器是否已唤醒成功
执行this.init() ,该操作会尝试采用websocket与已经唤起的本地播放器通讯。
如果进入open方法,代表播放器在运行状态,连接成功;进入error方法,代表播放器连接失败,可能是用户还没安装播放器,此时可以提示用户安装下载播放器。
JS代码如下
//唤起本地播放器
window.location.href ="dhfplayer:"+this.$route.query.videoId+"-"+file.id;
//3秒后执行检测
setTimeout(()=> {
this.init()
},3000)
//检测播放器是否已唤醒
init: function () {
if(typeof(WebSocket) === "undefined"){
alert("您的浏览器不支持socket")
}else{
// 实例化socket,ws的地址不用改
this.path="ws://127.0.0.1:9091/player";
this.socket = new WebSocket(this.path)
// 监听socket连接
this.socket.onopen = this.open
this.socket.onclose = this.close()
// 监听socket错误信息
this.socket.onerror = this.error
// 监听socket消息
this.socket.onmessage = this.getMessage
}
},
//成功时响应该函数
open: function () {
console.log("socket连接成功,程序正在运行")
//链接成功,可以关闭ws连接
this.close()
},
//失败时响应该函数, 失败原因有可能是未安装播放器,则应该提示用户安装。
error: function () {
console.log("连接失败");
//显示下载安装页面
},
close: function () {
console.log("socket已经关闭")
},
getMessage: function (msg) {
console.log(msg.data)
},
文档更新时间: 2019-11-12 14:43 作者:admin