uni-app 从上下载音频文件到本地

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

uni-app 从上下载音频文件到本地

下载音频文件到本地

2 回复

uni-app 中,你可以使用 uni.downloadFileuni.saveFile 方法来下载音频文件并保存到本地。以下是一个完整的代码示例,展示了如何从服务器下载音频文件并保存到本地文件系统。

示例代码

// 假设你有一个音频文件的URL
const audioUrl = 'https://example.com/audio/sample.mp3';

// 定义一个函数来下载音频文件
function downloadAudioFile(url) {
    // 使用uni.downloadFile下载文件
    uni.downloadFile({
        url: url,
        success: (res) => {
            if (res.statusCode === 200) {
                // 下载成功,获取临时文件路径
                const tempFilePath = res.tempFilePath;

                // 定义一个保存文件的路径(例如:保存到应用沙盒的documents目录)
                const saveFilePath = `${uni.env.USER_DATA_PATH}/sample.mp3`;

                // 使用uni.saveFile保存文件
                uni.saveFile({
                    tempFilePath: tempFilePath,
                    filePath: saveFilePath,
                    success: () => {
                        console.log('文件保存成功,路径为:', saveFilePath);

                        // 可以在这里执行后续操作,比如播放文件
                        // uni.createInnerAudioContext().src = saveFilePath;

                    },
                    fail: (err) => {
                        console.error('文件保存失败:', err);
                    }
                });
            } else {
                console.error('文件下载失败,状态码:', res.statusCode);
            }
        },
        fail: (err) => {
            console.error('文件下载失败:', err);
        }
    });
}

// 调用下载函数
downloadAudioFile(audioUrl);

注意事项

  1. 权限:确保你的应用在 manifest.json 中已经配置了必要的文件系统权限。
  2. 路径uni.env.USER_DATA_PATH 是应用沙盒中的一个目录,你可以根据需要调整保存路径。
  3. 文件大小:对于较大的文件,下载和保存可能会需要一些时间,考虑添加进度提示或错误处理。
  4. 兼容性uni-app 跨平台特性意味着你需要测试代码在不同平台(如微信小程序、H5、App等)上的表现。

这个示例代码展示了基本的下载和保存流程,你可以根据实际需求进行扩展,比如添加下载进度条、错误重试机制等。

回到顶部