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

主要功能代码

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;

}

java 多个歌曲_java 多个文件合并,多个 MP3 合并,InputStream 合并相关推荐

  1. java 存取xml数据_JAVA读取XML文件数据

    XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...

  2. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...

  3. java properties 路径问题_Java 读取Properties文件时应注意的路径问题

    Java读取properties文件的方法比较多,网上最多的文章是"Java读取properties文件的六种方法",但在Java应用中,最常用还是通过java.lang.Clas ...

  4. java 删除指定目录_Java 删除目录 指定文件

    package delete; import java.io.File; /** * 删除文件操作 * @author zengpan * */ public class DeleteFileTest ...

  5. java保存图片进度条_Java上传文件进度条的实现方法(附demo源码下载)

    本文实例讲述了Java上传文件进度条的实现方法.分享给大家供大家参考,具体如下: 东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以 ...

  6. java file rename 失败_java重命名文件造成文件不可读写

    我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...

  7. java 将换行代替_Java批量将文件中的段落替换成空格,根据指定分隔符换行(SQL示例)...

    我的需求是SQL文件中有成千的类似数据,我要将它们进行转换格式,如下图 第一步:将字符段楼替换,使用word排版 把数据拷贝到word中,使用特殊字符替换 点击全部替换,替换之后如下图,这时候它是一串 ...

  8. java properties读取缓存_java 读取 properties文件的各种方法

    1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream ...

  9. java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...

    POI,处理可以.样式在Java代码中添加就可以.给了一个例子这个是Excel的.package cn.com.my.common; import java.io.File; import java. ...

最新文章

  1. jenkins自动化部署工具
  2. Stack:删除并返回栈顶元素?
  3. 计算机专业可以用台式机吗,Win10X电脑操作系统可以装在台式机吗?
  4. 打印机服务器不支持1020,win10系统电脑安装hp1020打印机后无法使用的详细技巧
  5. 快速排序quicksort算法细节优化(一次申请内存/无额外内存排序)
  6. python封装api给vue_Vue axios api统一管理的封装
  7. android 获取文件夹的字节数,android java file 清理垃圾获取文件大小 删除文件等操作...
  8. python3安装后怎么开启_python3.10 如何下载安装?
  9. .net 遍历数组找重复值写入一个新数组_第二轮 Python 刷题笔记一:数组
  10. cartographer 前端两个方法:相干性匹配与非线性优化;以及回环检测方法:利用了分枝定界的相干性匹配
  11. 5加载stm32 keil_【STM32笔记】在SRAM、FLASH中调试代码的配置方法(附详细步骤)...
  12. 怎么使用 soapui 做接口测试?
  13. 量化交易 均线、金叉死叉计算与交易策略
  14. 计算机病毒 笑话,轻松一刻:因为男生的电脑容易中病毒
  15. 请不要在“微服务”的狂热中迷失自我!
  16. 优麒麟 20.04 pro更换内核
  17. FPGA_Verilog学习之旅(3)---VGA贪吃蛇游戏
  18. 15.4 真实感图形——纹理映射
  19. 普通麦克风和多阵列麦克风的区别
  20. 指向指针的指针!!(能让初学者绕晕的东西)

热门文章

  1. English Learning - L3 综合练习 2 VOA-Color 2023.05.10 周三
  2. VisualStudio2017发布网站时提示构建错误
  3. Windows下Mongodb启动
  4. skleran 计算 kappa系数
  5. python-编辑距离算法
  6. 风险投资在中国(一)[整理]
  7. 在微软计算机系统中数据存取速度最快的是,计算机应用基础基础知识选择题和答案...
  8. HTTP Catcher 重写教程
  9. SecureCRT使用专题
  10. 新版本Google浏览器无法跨域携带cookie问题