丹丹的小跟班 2023-09-25 12:37 采纳率: 67.4%
浏览 20
已结题

现在后端返回给我一堆下载地址,都是一个视频切片后的,如何在uniapp安卓环境下将这些分片的视频下周并且合并成原始视频并下载到本地。

现在后端返回给我一堆下载地址,都是一个视频切片后的,如何在uniapp安卓环境下将这些分片的视频下周并且合并成原始视频并下载到本地。

  • 写回答

10条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-25 12:54
    关注
    获得0.75元问题酬金

    引自免费小程序-皆我百晓生,希望对题主有所帮助,如有帮助,还望采纳。


    在uni-app中,你可以使用uni.request函数向后端发送请求获取视频的分片下载地址。然后通过uni.downloadFile函数将分片文件下载到本地。最后,你可以使用uni.saveFile函数将分片文件合并成原始视频并保存到本地。

    以下是一个示例代码:

    <template>
        <view>
            <button @click="downloadVideo">下载视频</button>
        </view>
    </template>
    
    <script>
    export default {
        methods: {
            async downloadVideo() {
                try {
                    const res = await uni.request({
                        url: '后端返回的下载地址接口',
                    });
                    const fragmentUrls = res.data.urls; // 假设后端返回的数据中urls字段是分片视频下载地址的数组
                    const downloadedFiles = await Promise.all(fragmentUrls.map(url => this.downloadFile(url)));
    
                    this.mergeFragments(downloadedFiles);
                } catch (error) {
                    console.error(error);
                }
            },
            downloadFile(url) {
                return new Promise((resolve, reject) => {
                    uni.downloadFile({
                        url: url,
                        success: (res) => {
                            if (res.statusCode === 200) {
                                resolve(res.tempFilePath);
                            } else {
                                reject(new Error('下载失败'));
                            }
                        },
                        fail: (error) => {
                            reject(error);
                        }
                    })
                });
            },
            mergeFragments(fragmentFiles) {
                uni.showLoading({
                    title: '正在合并视频',
                    mask: true
                });
    
                // 将fragmentFiles中的分片文件合并成原始视频
                const mergedFilePath = '合并后的视频文件路径'; // 替换成你指定的存储路径
    
                // 执行合并操作,这里需要根据你的分片视频格式和合并方式进行实现
                // 可以使用uni.saveFile保存合并后的文件到本地
                // 最后可以通过uni.showToast提示用户下载完成并指定保存路径
            }
        }
    }
    </script>
    

    请注意,示例代码中的mergeFragments函数需要根据你的分片视频格式和合并方式进行自定义实现。同时,你需要根据自己的需求来指定合并后的视频文件路径和保存路径,并在合并完成后通过uni.showToast函数来提示用户下载完成并指定保存路径。

    希望这能帮到你!

    评论

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 赞助了问题酬金15元 9月25日
  • 创建了问题 9月25日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败