uni-app 求m3u8下载插件

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 求m3u8下载插件

求m3u8下载插件
iOS android

14 回复

内置的video组件,支持m3u8


我说的是下载m3u8 如:下载m3u8存储为mp4文件

回复 1***@qq.com: m3u8,是一个文本,多了解下m3u8吧

回复 DCloud_heavensoft: 唉尴尬,烦请您先了解下m3u8以及ffmpeg

回复 1***@qq.com: m3u8,是一个文本文件,里面是播放列表。uni-app的video组件内置了ffmpeg,可以播放m3u8

回复 DCloud_heavensoft: 嗯嗯是的,我知道可以播放m3u8,但我的需求是将m3u8资源缓存下载下来,具体是:视频播放类app需要缓存功能,而我的资源是m3u8的,所以需要将其资源下载合并转换为mp4等格式的文件。原生开发可结合ffmpeg完成,我现在需求是这样的一个插件。感谢关注

592944557 来吧,我可以做

可以做,Q~ 1196097915

兄弟 实现了吗

实现了,但有点麻烦,实例:http://eyunzhu.com/tools/pahei/app.html

回复 1***@qq.com: 有思路,和方法么

兄弟给个简单的demo吧,,,感谢!

在uni-app中实现m3u8视频文件的下载,通常需要借助第三方插件或者原生代码进行扩展。由于uni-app本身不直接支持m3u8文件的下载,我们可以考虑使用H5+ API或者通过原生模块来实现这一功能。下面提供一个基于H5+ API的示例代码,以及如何通过uni-app插件市场找到相关插件的指引。

使用H5+ API实现m3u8下载

首先,确保你的项目已经开启了H5+扩展API的权限。然后,你可以使用以下代码来下载m3u8文件:

// 引入必要的模块
const fs = plus.io.FileSystemManager;
const downloadTask = plus.downloader.createDownloadTask({
    url: 'https://example.com/path/to/your/video.m3u8', // m3u8文件的URL
    filename: '_downloads/video.m3u8' // 下载后保存的文件路径
});

downloadTask.onStart(function (res) {
    console.log('下载开始');
});

downloadTask.onProgress(function (res) {
    console.log('下载进度', res.progress);
    console.log('已下载字节数', res.totalBytesWritten);
    console.log('预期下载总字节数', res.totalBytesExpectedToWrite);
});

downloadTask.onSuccess(function (res) {
    console.log('下载成功', res.tempFilePath); // 注意:这里返回的是临时文件路径
    // 如果需要移动到永久存储目录,可以使用fs.moveFile
    fs.moveFile({
        srcPath: res.tempFilePath,
        destPath: '_www/downloads/video.m3u8', // 永久存储目录路径
        success: function () {
            console.log('文件移动成功');
        },
        fail: function (err) {
            console.error('文件移动失败', err);
        }
    });
});

downloadTask.onError(function (err) {
    console.error('下载失败', err);
});

// 开始下载
downloadTask.start();

使用uni-app插件市场插件

如果上述方法不符合你的需求,你可以访问uni-app插件市场,搜索“m3u8 下载”等关键词,找到合适的插件。通常,这些插件会提供更封装好的接口,使得集成更加简单。

例如,你可能会找到一个名为uni-m3u8-downloader的插件(注意:此插件名为示例,实际使用时请查找可用的插件)。使用插件时,只需按照插件文档进行安装和配置,然后调用插件提供的API即可完成m3u8文件的下载。

// 假设插件提供了一个名为downloadM3U8的方法
const downloader = require('uni-m3u8-downloader');
downloader.downloadM3U8({
    url: 'https://example.com/path/to/your/video.m3u8',
    success: function (filePath) {
        console.log('下载成功,文件路径:', filePath);
    },
    fail: function (err) {
        console.error('下载失败', err);
    }
});

请根据实际情况选择合适的实现方式。

回到顶部