y***@163.com
y***@163.com
  • 发布:2024-10-22 18:01
  • 更新:2024-10-22 18:01
  • 阅读:50

【报Bug】video组件,时长大概在1秒左右的mp3音频,直接自动播放或者只调用一次播放会没有声音

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Win11

HBuilderX类型: 正式

HBuilderX版本号: 4.29

手机系统: Android

手机系统版本号: Android 15

手机机型: 中兴Z50Rs

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template> <view> <view class="uni-padding-wrap uni-common-mt"> <view> <video id="myVideo" src="/static/music/zongyi/chijing.mp3" @error="videoErrorCallback" danmu-list="danmuList" enable-danmu danmu-btn controls></video> </view>
<!-- #ifndef MP-ALIPAY -->
<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 {
src: '',
danmuList: [{
text: '第 1s 出现的弹幕',
color: '#ff0000',
time: 1
},
{
text: '第 3s 出现的弹幕',
color: '#ff00ff',
time: 3
}
],
danmuValue: ''
}
},
onReady: function(res) {
// #ifndef MP-ALIPAY
this.videoContext = uni.createVideoContext('myVideo')
// #endif
},
methods: {
sendDanmu: function() {
// this.videoContext.sendDanmu({
// text: this.danmuValue,
// color: this.getRandomColor()
// });
// this.danmuValue = '';
// 这里我设置了500毫秒演示,模拟连续点二次播放,是可以的,只调用一次无法出声音
setTimeout(() => {
this.videoContext.play()
}, 500);
this.videoContext.play()

        },  
        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 scoped>

</style>

操作步骤:

运行以上代码

预期结果:

能自动播放成功,或者调用一次play就可以正常播放

实际结果:

必须要点二次播放才可以正常播放一次,第三次依然失败。

bug描述:

【报Bug】video组件,时长大概在1秒左右的mp3音频,直接自动播放或者只调用一次播放会没有声音,时长稍微长一点的mp3就比较正常,但是末尾也没完全办法播放结束。

2024-10-22 18:01 负责人:无 分享
已邀请:

要回复问题请先登录注册