java - 7牛怎么fetch到的amr音频转换成mp3格式

 莹TX_937 发布于 2022-10-29 15:49
使用七牛抓取资源功能,将微信上的录音的音频抓取出来,放到七牛存储,但是抓取的是amr格式,不能播放,需要将音频转化为mp3格式的.
我用的是sdk是7.0.0版本,搞了一天,快崩溃了.已经成功抓取到了,就是没有办法转码.哪位仁兄知道呢?
感谢感谢!

我将OperationManager添加进来了,7.0.0版本没这个类.方法实现如下
    
Auth auth = Auth.create(QiNiuConstant.ACCESSKEY, QiNiuConstant.SECRETKEY);
OperationManager operater = new OperationManager(auth);
String bucket = event.getFetchVo().getBucket();
String key = event.getFetchVo().getFilePath().toString() 
    • event.getFetchVo().getKey();

      // 设置转码操作参数

    String fops = "avthumb/mp3/s/640x360/vb/1.25m";
    // 设置转码的队列
    String pipeline = "weixinteachervoice";
    // 可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
    String urlbase64 = UrlSafeBase64.encodeToString(bucket + ":" + key);
    String pfops = fops + "|saveas/" + urlbase64;
    // 设置pipeline参数
    StringMap params = new StringMap().putWhen("force", 1, true).putNotEmpty("persistentPipeline", pipeline);

    1. {

         String persistid = operater.pfop(bucket, key, pfops, params);
         System.out.println("transcod success : " + persistid);

      } catch (QiniuException e) {

         Response r = e.response;
         logger.info("transcod fail :" + r.toString());
         try {
             System.out.println(r.bodyString());
         } catch (QiniuException e1) {
             logger.info("transcod fail : can't print response");
         }

      }
      logger.info("transcode end " );

    3 个回答
    • 我是用Python码的,localfile就是你文件的路径。

      q = qiniu.Auth(settings["QiniuAccessKey"], settings["QiniuSecretKey"])
      key = "%s_%s.amr" % (save_id, name)
      policy = {}
      policy["persistentOps"] = "avthumb/m4a|saveas/"+base64.b64encode("audio:%s_%s" %(save_id, name))
      policy["persistentPipeline"] = "weixin"
      policy["callbackUrl"] = "http://XXX.XXX.com/api/audio/weixin_upload_notify"
      policy["callbackBody"] = "filename=$(fname)&filesize=$(fsize)&user_id=%s&save_id=%s&name=%s&duration=%s&created=%s" % (user_id, save_id, name, duration, created)
      uptoken = q.upload_token("audio", key, 3600, policy)
      ret, info = yield qiniu.put_file(uptoken, key, localfile)

      不过我最近转码的时候遇到问题,这个callbackurl竟然瞬间就返回了……不过是成功的。

      2022-10-31 01:03 回答
    • fetch下来之后,在调用转换接口,刚好昨天做了这个功能,不过转换是成功了,ios下依然不能播放,苦逼中。。。
      另外说下,官方给的文档很多地方不统一,给的sdk也有一点错误,两者结合,才弄出最终可以用的转换接口

      不好意思,转换成mp3之后是可以播放的,当时没注意手机打到静音状态了,所以死活没声音,其实是可以播放的,相关代码,请参开这里http://www.cnblogs.com/weiniu/p/qiniu_fetch_convert_php.html

      2022-10-31 01:04 回答
    • 触发持久化转码参考下demo大全
      http://7xnonj.com2.z0.glb.qiniucdn.com/i...

      2022-10-31 01:05 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有