<template>
  <div id="player"></div>
</template>
<script lang="ts" setup>
import api from '@/axios'
import { Ref, ref, watch, onMounted, onBeforeMount, onBeforeUnmount, reactive, getCurrentInstance } from 'vue'
import { useRouter } from 'vue-router'
const router = useRouter()
const infoData = ref()
var curIndex = 0 // 当前窗口下标
let myPlugin: any
onMounted(() => {
  if (typeof window.JSPlugin === 'undefined') {
    return
  } else {
  }
  let date = {
    pointId: router.currentRoute.value.query.pointId,
    useTLS: 0,
  }
  if (process.env.NODE_ENV === 'production') {
    date.useTLS = 1
  }

  api.post('/multialarm/video/preview', { ...date }).then((res) => {
    // console.log('router222', res)
    console.log('播放地址', res.data.videoUrl)
    var code = res['code']
    if (code == 0) {
      var playURL = res.data.videoUrl
      // var playURL = 'wss://w.hnjinglian.cn:2563/haikang play/openUrl/w64vRni'
      var IS_MOVE_DEVICE = document.body.clientWidth < 992 // 是否移动设备
      var MSE_IS_SUPPORT = !!window.MediaSource // 是否支持mse
      myPlugin = new window.JSPlugin({
        // 当容器div#play_window有固定宽高时，可不传iWidth和iHeight，窗口大小将自适应容器宽高
        // iWidth: 600,
        // iHeight: 400,
        szId: 'player', //需要英文字母开头，唯一性，必填
        szBasePath: './', // 必填,与h5player.min.js的引用目录一致
        iMaxSplit: 1, // 分屏播放，默认最大分屏4*4
        iCurrentSplit: IS_MOVE_DEVICE ? 1 : 2,
        openDebug: true,
        oStyle: {
          borderSelect: IS_MOVE_DEVICE ? '#000' : '#FFCC00',
        },
        bSupporDoubleClickFull: true, //是否支持双击全屏，默认true
      })
      myPlugin
        .JS_SetWindowControlCallback({
          pluginErrorHandler: function (index: any, iErrorCode: any, oError: any) {},
        })
        .then((res: any) => {})

      var controlIndex = 2
      function playVideo() {
        myPlugin
          .JS_Play(
            playURL,
            {
              playURL: playURL, // 流媒体播放时必传
              mode: 1, // 解码类型：0=普通模式; 1=高级模式 默认为0
            },
            curIndex //当前窗口下标
          )
          .then(
            () => {},
            (e: any) => {
              // console.log('网络流中断')
              controlIndex--
              if (controlIndex <= 0) {
                return
              }
              // console.info('JS_Play failed:', e)
              playVideo()
            }
          )
      }
      playVideo()
    } else {
      alert('播放失败')
    }
  })
})

// 停止播放断开 ws 连接
onBeforeUnmount(() => {
  myPlugin.JS_Stop(curIndex).then(
    () => {
      console.info('JS_Stop success')
      // do you want...
    },
    (err: any) => {
      console.info('JS_Stop failed:', err)
      // do you want...
    }
  )
})
</script>

<style scoped lang="scss">
#player {
  height: 100%;
  width: 100%;
  background: #000;
}
</style>
