vr_player/vr/src/views/Test/index.vue
2025-02-08 00:55:28 +08:00

101 lines
2.3 KiB
Vue

<template>
<div class="vrlive">
<video class="video-js my-video" ref="video"></video>
<div class="func">
<button @click="player.play()">播放</button>
<button @click="player.pause()">暂停</button>
</div>
123
</div>
</template>
<script>
import videojs from 'video.js'
import 'videojs-flash'
import '@a/js/videojs-vr'
export default {
name: 'VRLive',
data () {
return {
player: null,
opt: {
techOrder: ['flash', 'html5'],
sources: [{
withCredentials: false,
type: 'rtmp/flv',
// rtmp://202.69.69.180:443/webcast/bshdlive-pc
// rtmp://live.xshaitt.com/kxh/demo
src: 'rtmp://202.69.69.180:443/webcast/bshdlive-pc'
}, {
withCredentials: false,
type: 'application/x-mpegURL',
// http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
// http://live.xshaitt.com/kxh/demo.m3u8
src: ' http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8'
}],
controls: true,
poster: 'https://images.pexels.com/photos/3518091/pexels-photo-3518091.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500'
}
}
},
mounted () {
this.init()
},
methods: {
init () {
this.player = videojs(this.$refs.video, this.opt)
this.player.vr({ projection: '360' })
},
getRTMP (sourceURL, el) {
el.id = 'rtmpVideo'
console.log(el)
this.player = videojs(el, {
height: '432',
sources: [{
type: 'rtmp/flv',
src: sourceURL
}]
})
this.player.on('ready', function () {
console.log('准备就绪')
})
}
}
}
</script>
<style lang="scss" scoped>
.vrlive{
display: flex;
flex-direction: column;
align-items: center;
.my-video{
margin-top: 40px;
width: 800px;
height: 600px;
}
.func{
display: flex;
justify-content: center;
margin-top: 20px;
width: 800px;
button{
margin-right: 20px;
padding: 10px 15px;
font-size: 15px;
color: white;
background-image: linear-gradient( 135deg, #ABDCFF 10%, #0396FF 100%);
border-radius: 5px;
transition: all .3s;
&:hover{
transform: translateY(-2px);
background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
box-shadow: 0 2px 5px #40bad5;
}
}
}
}
</style>