Commit 7eb7bf7f authored by 罗新东's avatar 罗新东
Browse files

修复了视屏无法播放的bug

parent bf784c55
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
    "vue": "^2.6.10",
    "vue-esign": "^1.0.5",
    "vue-router": "^3.0.7",
    "vue-video-player": "^5.0.2",
    "vue2-verify": "^1.1.5",
    "vuex": "^3.1.2"
  },
+2 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
        </keep-alive>
      </transition>
    <div :style="{height:tabH}"></div>
    <tab-bar :index="1" v-if="showTab"></tab-bar>
    <tab-bar  v-if="showTab"></tab-bar>
  </div>
</template>

@@ -94,6 +94,7 @@ export default {
  overflow: hidden;
  position: relative;
  overflow: hidden;
  // z-index:999999999999
}

.router-view {
+92 −0
Original line number Diff line number Diff line
<template>
  <div class="player">
    <van-icon name="close" size="1rem" color="red" style="top:27%" @click="$emit('close')"/>
    <video-player
     style="position: absolute;
        top: 50%;
        width: 100%;
        transform: translateY(-50%);"
      class="video-player vjs-custom-skin"
      ref="videoPlayer"
      :options="playerOptions"
      :playsinline="true" >
    </video-player>
  </div>
</template>
<script>
import Vue from "vue";
import VideoPlayer from "vue-video-player";
require("video.js/dist/video-js.css");
require("vue-video-player/src/custom-theme.css");
Vue.use(VideoPlayer);

export default {
  name: "customPlayer",
  data() {
    return {
      playerOptions: {
        height: "360",
        autoplay: true, // true:浏览器准备好时开始回放。
        muted: false, // true:默认情况下将会消除任何音频。
        language: "zh-CN",
        // aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
        preload: 'auto', // 建议浏览器在加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持) 
        playbackRates: [0.7, 1.0, 1.5, 2.0],
        sources: [
          {
            type: "video/mp4",
            src:this.videoUrl,
          },
        ],
        // poster: "https://surmon-china.github.io/vue-quill-editor/static/images/surmon-1.jpg", // 你的封面地址
        poster:this.videoImg,
        notSupportedMessage: "此视频暂无法播放,请稍后再试", // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
        controlBar: {
          timeDivider: true, //当前时间和持续时间的分隔符
          durationDisplay: true, //显示持续时间
          remainingTimeDisplay: false, //是否显示剩余时间功能
          fullscreenToggle: true, // 全屏按钮
        },
      },
    };
  },
  props: {
    "videoUrl": {
      type: String,
      required: true
    },
    "videoImg": {
      type: String,
      required: true,
      default:"https://surmon-china.github.io/vue-quill-editor/static/images/surmon-1.jpg"
    }
  },
  mounted() {},
  methods: {},
};
</script>
<style lang="less">
.player{
    height: 100vh;
    position: fixed;
    z-index: 1000000000;
    width: 100vw;
    background-color: rgba(0, 0, 0, 0.5);
    text-align: center;
}
//播放按钮样式
.video-player.vjs-custom-skin > .video-js .vjs-big-play-button{
  width: 60px !important;
  height:35px !important;
  line-height: 35px !important;
  border-radius: 5px !important;
  font-size: 2.5em !important;
}
.vjs-custom-skin > .video-js .vjs-big-play-button {
    top: 53%;
}
.vjs-poster{
  border-radius: 10px i !important;
}
</style>
 No newline at end of file
+6 −3
Original line number Diff line number Diff line
@@ -17,17 +17,20 @@ import './permission'
import Cookies from 'js-cookie'
import { prefix } from '@/common/js/utils'
import { Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row,  Image as VanImage, Badge,NoticeBar,DatetimePicker,
Step, Steps  } from 'vant'
Step, Steps, ImagePreview  } from 'vant'
import 'lib-flexible/flexible'
import vueEsign from 'vue-esign'
import VideoPlayer from 'vue-video-player'
// 全局过滤器
import filters from "@/utils/filters.js"
Vue.use(vueEsign)
Vue.prototype.util = util

Vue.use(vueEsign)
Vue.use(VideoPlayer)
Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify)
.use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky)
.use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker)
.use(Step).use(Steps)
.use(Step).use(Steps).use(ImagePreview)
Vue.config.productionTip = false
new Vue({
  router,
+11 −1
Original line number Diff line number Diff line
@@ -605,7 +605,17 @@ const routes = [{
      index:1
    },
    component:()=>import('@/views/danger/insertDanger/list')
  }
  },
  {
    path:'/video',
    name:'video-play',
    meta:{
      title:'视屏播放',
      index:1
    },
    component:()=>import('@/components/video')
  },

  
]

Loading