项目中要用到七牛的音视频拼接,但是文档有不明白的地方,实验后做了下注释,以免忘记。
public static void main(String[] args) { //参考 http://developer.qiniu.com/code/v7/sdk/java.html#pfop //假如要要将key为 shenshi-1.mp3 、 shenshi-2.mp3 、 shenshi-3.mp3 的3个片段拼接成一个名为 shenshi.mp3 的音频 //设置账号的AK,SK String ACCESS_KEY = "Access_Key"; String SECRET_KEY = "Secret_Key"; Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); //新建一个OperationManager对象 OperationManager operater = new OperationManager(auth); //设置要转码的空间 String bucket = "Bucket_Name"; //这个key是你要拼接的第一个音频的key String key = "shenshi-1.mp3"; //fops参数的的格式 http://developer.qiniu.com/code/v6/api/dora-api/av/avconcat.html //第二个和第三个音频的key需要和 目标Bucket_Name 一起进行Base64编码 String fops = "avconcat/2/format/mp3/" +UrlSafeBase64.encodeToString("目标Bucket_Name:shenshi-2.mp3(第二个拼接的音频)")+"/" +UrlSafeBase64.encodeToString("目标Bucket_Name:shenshi-3.mp3(第三个拼接的音频)"); //设置转码的队列,这个可以在七牛后台点击 “添加资源”添加;这个也可以不用设置,把下面的 params 参数设为 null 就可以了。 String pipeline = "yourpipelinename"; //最终拼接成的音频key是自己定义的,需要和 目标Bucket_Name 一起进行Base64编码 String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:shenshi.mp3(最终拼接成文件的key)"); String pfops = fops + "|saveas/"+urlbase64; //设置pipeline参数 StringMap params = new StringMap().putWhen("force", 1, true).putNotEmpty("pipeline", pipeline); try { //拼接文件越大,所花的时间越多,如果有必要,可以设置回调通知url String persistid = operater.pfop(bucket, key, pfops, params); //打印返回的persistid System.out.println(persistid); } catch (QiniuException e) { //捕获异常信息 Response r = e.response; // 请求失败时简单状态信息 System.out.println(r.toString()); try { // 响应的文本信息 System.out.println(r.bodyString()); } catch (QiniuException e1) { //ignore } } }