java 多个歌曲_java 多个文件合并,多个 MP3 合并,InputStream 合并

在企业微信上上传音视频会有时长限制,对于较长的音视频,只能分成几段进行上传,然后再进行合并。

主要功能代码

List inputStreamList = new ArrayList<>();

Enumeration en = Collections.enumeration(inputStreamList);

SequenceInputStream seq1 = new SequenceInputStream(en);

详细代码

public void getInputStreamByMediaIds(List mediaIds) {

List inputStreamList = new ArrayList<>();

for (String mediaId : mediaIds) {

// 拉取临时文件

InputStream inputStream = getInputStreamById(mediaId);

if (inputStream != null) {

inputStreamList.add(inputStream);

}

}

if (CollectionUtils.isEmpty(inputStreamList)) {

return null;

}

String fileName = UUIDUtil.getUUID();

String saveFile = "coachweixin/" + fileName + ".mp3";

File file = new File(saveFile);

File parentFile = new File(file.getParent());

if (!parentFile.exists()) {

parentFile.mkdirs();

}

try {

BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(saveFile));

Enumeration en = Collections.enumeration(inputStreamList);

SequenceInputStream seq1 = new SequenceInputStream(en);

int i;

while ((i = seq1.read()) != -1) {

buff.write(i);

}

buff.close();

seq1.close();

} catch (Exception e) {

log.error("getInputStreamByMediaIds error", e);

}

}

/**

* 根据文件id下载文件,去微信下载临时素材,返回InputStream

* @param mediaId

* 媒体id

* @throws Exception

*/

public InputStream getInputStreamById(String mediaId) {

InputStream is = null;

String token = getAccessToken();

String url = EnterpriseWechatApi.GET_TEMP_MEDIA + "?access_token=" + token + "&media_id=" + mediaId;

try {

URL urlGet = new URL(url);

HttpURLConnection http = (HttpURLConnection) urlGet

.openConnection();

http.setRequestMethod("GET"); // 必须是get方式请求

http.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

http.setDoOutput(true);

http.setDoInput(true);

System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒

System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒

http.connect();

int code = http.getResponseCode();

if (code == 200 || code == 206) {

is = http.getInputStream();

}

// 获取文件转化为byte流

} catch (Exception e) {

log.error("根据文件id下载文件",e);

}

return is;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值