你的浏览器不支持canvas

做你害怕做的事情,然后你会发现,不过如此。

Java七牛音频转码实例

时间: 作者: 黄运鑫

本文章属原创文章,未经作者许可,禁止转载,复制,下载,以及用作商业用途。原作者保留所有解释权。


开发环境

代码如下

/**
 * 音频转码
 *
 * @param key       被转码文件名
 * @param format    转码后的格式
 * @param ab        音频码率,单位:比特每秒(bit/s),常用码率:64k,128k,192k,256k,320k等。在不改变音频编码格式时,若指定码率大于原音频码率,则使用原音频码率进行转码。
 * @param ar        音频采样频率,单位:赫兹(Hz),常用采样频率:8000,12050,22050,44100等。
 * @param resultUrl 转码后的文件名
 * @return
 */
public String avthumb(String key, String format, String ab, Integer ar, String resultUrl) {
    //七牛的ACCESS_KEY和SECRET_KEY
    Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    OperationManager operationManager = new OperationManager(auth);
    //转码后的文件名是自己定义的,需要和 目标Bucket_Name 一起进行Base64编码
    //Bucket_Name是七牛存储空间名
    String fops = "avthumb/" + format + "/ab/" + ab + "/ar/" + ar + "|saveas/" + UrlSafeBase64.encodeToString(bucketname + ":" + resultUrl);
    String persistid = null;
    try {
        StringMap stringMap = new StringMap();
        stringMap.put("notifyURL", this.voiceCallbackUrl);//接收转码完成通知的url
        stringMap.put("force", 1);//如果文件已存在,则覆盖(默认不覆盖)
        persistid = operationManager.pfop(bucketname, key, fops, stringMap);
    } catch (QiniuException e) {
        //捕获异常信息
        Response r = e.response;
        // 请求失败时状态信息
        System.out.println(r.toString());
        try {
            // 响应的文本信息
            System.out.println(r.bodyString());
        } catch (QiniuException e1) {
            //ignore
        }
    }
    return persistid;
}
  • 转码任务提交成功后,会得到格式为“z2.59f05d1d583728070912eb29”的persistid,persistid可以查看转码任务的状态
    发送get请求到:https://api.qiniu.com/status/get/prefop?id=z2.59f05d1d583728070912eb29

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。