唤起电脑的加密播放器

操作步骤

第一步. 唤起本地播放器

videoId 指课程ID
fileId 指课程下的视频文件ID
window.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