web_src/src/components/gb28181/devicePlayer.vue
@@ -1,8 +1,7 @@
<template>
   <div id="devicePlayer">
      <el-dialog title="视频播放" top="0" :visible.sync="showVideoDialog" :destroy-on-close="true" @close="close()">
      <LivePlayer v-if="showVideoDialog && hasaudio" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" hasaudio fluent autoplay live ></LivePlayer>
      <LivePlayer v-if="showVideoDialog && !hasaudio" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" fluent autoplay live ></LivePlayer>
      <LivePlayer v-if="showVideoDialog" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" :hasaudio="hasaudio" fluent autoplay live ></LivePlayer>
         <div id="shared" style="text-align: right; margin-top: 1rem;">
            <el-tabs v-model="tabActiveName">
               <el-tab-pane label="媒体流信息" name="media">
@@ -123,20 +122,17 @@
      methods: {
         play: function(streamInfo, deviceId, channelId, hasAudio) {
        // this.hasaudio = hasAudio;
        if (!hasAudio) { // hasaudio == false时设置播放器hasaudio false, 否则不设置
          this.hasaudio = hasAudio;
        }
        // 根据媒体流信息二次判断
        // if( this.hasaudio && !!streamInfo.tracks && streamInfo.tracks.length > 0) {
        //   var realHasAudio = false;
        //   for (let i = 0; i < streamInfo.tracks; i++) {
        //     if (streamInfo.tracks[i].codec_type == 1) { // 判断为音频
        //       realHasAudio = true;
        //     }
        //   }
        //   this.hasaudio = realHasAudio && this.hasaudio;
        // }
        if( this.hasaudio && !!streamInfo.tracks && streamInfo.tracks.length > 0) {
          var realHasAudio = false;
          for (let i = 0; i < streamInfo.tracks; i++) {
            if (streamInfo.tracks[i].codec_type == 1) { // 判断为音频
              realHasAudio = true;
            }
          }
          this.hasaudio = realHasAudio && this.hasaudio;
        }
        this.ssrc = streamInfo.ssrc;
            this.deviceId = deviceId;
            this.channelId = channelId;