12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <template>
- <view>
- <page-head :title="title"></page-head>
- <view class="uni-padding-wrap uni-common-mt" v-if="showVideo">
- <view>
- <video id="myVideo" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126-lite.m4v"
- @error="videoErrorCallback" :danmu-list="danmuList" enable-danmu danmu-btn controls poster="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/b1476d40-4e5f-11eb-b997-9918a5dda011.png"></video>
- </view>
- <!-- #ifndef MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU || MP-LARK || MP-JD -->
- <view class="uni-list uni-common-mt">
- <view class="uni-list-cell">
- <view>
- <view class="uni-label">弹幕内容</view>
- </view>
- <view class="uni-list-cell-db">
- <input v-model="danmuValue" class="uni-input" type="text" placeholder="在此处输入弹幕内容" />
- </view>
- </view>
- </view>
- <view class="uni-btn-v">
- <button @click="sendDanmu" class="page-body-button">发送弹幕</button>
- </view>
- <!-- #endif -->
- </view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- title: 'video',
- src: '',
- danmuList: [{
- text: '第 1s 出现的弹幕',
- color: '#ff0000',
- time: 1
- },
- {
- text: '第 3s 出现的弹幕',
- color: '#ff00ff',
- time: 3
- }
- ],
- danmuValue: '',
- showVideo: false
- }
- },
- onReady: function(res) {
- // #ifndef MP-ALIPAY || MP-TOUTIAO
- this.videoContext = uni.createVideoContext('myVideo')
- // #endif
- // #ifdef APP-PLUS || MP-BAIDU
- setTimeout(()=>{
- this.showVideo = true
- },350)
- // #endif
- // #ifndef APP-PLUS || MP-BAIDU
- this.showVideo = true
- // #endif
- },
- methods: {
- sendDanmu: function() {
- this.videoContext.sendDanmu({
- text: this.danmuValue,
- color: this.getRandomColor()
- });
- this.danmuValue = '';
- },
- videoErrorCallback: function(e) {
- uni.showModal({
- content: e.target.errMsg,
- showCancel: false
- })
- },
- getRandomColor: function() {
- const rgb = []
- for (let i = 0; i < 3; ++i) {
- let color = Math.floor(Math.random() * 256).toString(16)
- color = color.length == 1 ? '0' + color : color
- rgb.push(color)
- }
- return '#' + rgb.join('')
- }
- }
- }
- </script>
- <style>
- video {
- width: 690rpx;
- width: 100%;
- height: 400px;
- }
- </style>
|