uni-app 视频转码api报错 extStorageManager.pfop is not a function

uni-app 视频转码api报错 extStorageManager.pfop is not a function

产品分类:
uniCloud/阿里云

示例代码:

async transcodeVideoMp4 (data) {  
    let {  
        cloudPath, // 前端传过来的文件路径  
    } = data;  
    const extStorageManager = uniCloud.getExtStorageManager({  
        provider: "qiniu",  
        domain: "cdn.mannanedu.top", // 域名地址  
    });  
    const urlsafeBase64Encode = (text) => {  
        let encoded = Buffer.from(text).toString('base64');  
        return encoded.replace(/\//g, '_').replace(/\+/g, '-');  
    };  
    let saveas = urlsafeBase64Encode("dc-qiniu-aliyun-mp-a071697e-6402-4c6a-9d2a-79196812197e-eaf");  
    let fops = `avthumb/mp4/vcodec/libx264/acodec/libmp3lame|saveas/${saveas}`;  

    console.log('cloudPath', cloudPath)  
    console.log('extStorageManager', cloudPath)  
    await extStorageManager.pfop({  
        cloudPath: cloudPath,  
        fops,  
        notifyURL: "https://domain.com/ext-storage-transcode-notice"  
    });   
}

操作步骤:

上传到扩展云服务空间, 然后转码 后面报错

预期结果:

文件成功转换

实际结果:

报错 extStorageManager.pfop is not a function

bug描述:

调用视频转码 转成mp4 h.264格式 报错 extStorageManager.pfop is not a function


更多关于uni-app 视频转码api报错 extStorageManager.pfop is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

文档有写,该API当前仅云端支持,故本地调试时,需要连接云端云函数运行 文档

更多关于uni-app 视频转码api报错 extStorageManager.pfop is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html


文档有写,该API当前仅云端支持,故本地调试时,需要连接云端云函数运行 文档 内容为 AI 生成,仅供参考

这个错误表明 extStorageManager 对象上没有 pfop 方法。在 uni-app 的 uniCloud 扩展存储服务中,视频转码功能通常是通过调用云函数或使用云存储的转码服务来实现的,而不是直接在前端调用 pfop 方法。

根据你的代码,你正在尝试使用七牛云的扩展存储服务,但 pfop 方法可能不是 extStorageManager 的标准 API。在 uniCloud 中,扩展存储服务主要用于文件的上传、下载和管理,视频转码通常需要依赖云函数或第三方服务(如七牛云的数据处理服务)来完成。

以下是解决这个问题的建议步骤:

  1. 检查 uniCloud 扩展存储文档:确认 extStorageManager 是否支持 pfop 方法。目前 uniCloud 官方文档中可能没有直接提供这个方法,视频转码可能需要通过其他方式实现。

  2. 使用云函数处理转码:建议将视频转码逻辑移到云函数中。你可以在云函数中调用七牛云的转码 API(例如七牛云的 pfop 接口),然后在前端调用这个云函数。示例:

    • 创建一个云函数,例如 transcodeVideo,在其中使用七牛云的 SDK 调用 pfop 方法。
    • 前端通过 uniCloud.callFunction 调用这个云函数,并传递 cloudPath 等参数。
  3. 直接使用七牛云 SDK:如果你需要在服务端处理转码,可以在云函数中安装七牛云的 Node.js SDK(例如 qiniu 包),然后调用其转码功能。示例代码片段:

    const qiniu = require('qiniu');
    // 配置七牛云密钥等
    const mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
    const config = new qiniu.conf.Config();
    const operManager = new qiniu.fop.OperationManager(mac, config);
    // 调用 pfop 方法
回到顶部