收藏
回答

video组件播放本地mp4视频,第一遍可以播放,第二遍就一直在加载,进度条的起始位置也不归为0?

<view class="video-container" wx:for="{{videos}}">

<video id="myVideo" src="{{ item }}" poster="{{ posterUrl }}" controls></video>

</view>

getFile() {

const {

videoIds

} = this.data;

videoIds.forEach(item => {

wx.request({

url: app.globalData.httpUrl + '/sys/sysFileInfo/download?id=' + item, // 替换为实际接口地址

method: 'GET',

responseType: 'arraybuffer', // 指定返回的数据格式为 arraybuffer

success: (res) => {

if (res.statusCode === 200) {

const videoBytes = res.data; // 接口返回的视频文件字节数组

this.saveAndPlayVideo(videoBytes);

} else {

console.error('请求视频文件失败');

}

},

fail: (err) => {

console.error('请求视频文件失败', err);

}

});

})


},

// 将视频字节数组保存到临时文件并播放

saveAndPlayVideo(videoBytes) {

let {

videos

} = this.data;

const filePath = wx.env.USER_DATA_PATH + '/tempVideo.mp4'; // 临时文件保存路径,注意文件后缀应与实际视频格式一致


// 将视频字节数组写入临时文件

wx.getFileSystemManager().writeFile({

filePath: filePath,

data: videoBytes,

encoding: 'binary', // 指定写入数据的编码方式为二进制

success: () => {

console.log('视频文件保存成功', filePath);

videos.push(filePath)

this.setData({

videos: videos // 设置临时文件路径为视频播放源

});

},

fail: (err) => {

console.error('保存视频文件失败', err);

}

});

}

回答关注问题邀请回答
收藏
登录 后发表内容