登录

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

使用七牛抓取资源功能,将微信上的录音的音频抓取出来,放到七牛存储,但是抓取的是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 " );

    # Java
    PHPz PHPz 2286 天前 795 次浏览

    全部回复(3) 我要回复

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:43:52

    触发持久化转码参考下demo大全
    http://7xnonj.com2.z0.glb.qiniucdn.com/i...

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 17:43:52

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

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

    回复
    0
  • 迷茫

    迷茫2017-04-17 17:43:52

    我是用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竟然瞬间就返回了……不过是成功的。

    回复
    0
  • 取消 回复 发送