Java 微信获取临时素材(录音)并上传到服务器

发布时间:2024年01月05日

1.音频转码工具

AudioUtils.amrToMp3

2.获取临时素材

微信获取临时素材对接代码

3.代码

	/**
     * 微信获取临时素材(录音)并上传到服务器
     *
     * @param mediaId
     * @author hcx
     * @since 2024-01-03
     * @return 上传之后的url
     */
    public String recording(String mediaId) throws IOException {
        // 获取临时素材(录音)文件流
        InputStream inputStream = weChatService.getTemporaryMaterial(mediaId);
        OutputStream outputStream = null;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            // 服务器路径
            String serverUrl = "服务器路径1/路径2/...";
            // 相对文件路径
            String relativeUrl = "/mp3" + "/" + sdf.format(new Date());
            // 文件名(不包括文件后缀)
            String fileName = "/" + System.currentTimeMillis() + UUID.randomUUID().toString().replace("-", "");

            // 判断是否存在当前目录,不存在则创建
            File filePath = new File(serverUrl + relativeUrl);
            if (!filePath.exists()) {
                filePath.mkdirs();
            }

            // 1.将文件流写到服务器,变成amr文件
            File amrFile = new File(serverUrl + relativeUrl + fileName + ".amr");   // amr文件
            outputStream = new FileOutputStream(amrFile);
            int len = 0;
            byte[] buffer = new byte[1024];
            while ((len = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, len);
            }
            // 完毕,关闭所有链接
            outputStream.close();
            inputStream.close();

            // 2.将amr文件转为mp3,再写到服务器
            File mp3File = new File(serverUrl + relativeUrl + fileName + ".mp3"); // mp3文件
            AudioUtils.amrToMp3(amrFile, mp3File);

            // 3.删除服务器的amr文件
            Path path = Paths.get(serverUrl + relativeUrl + fileName + ".amr");
            Files.delete(path);

            String url = relativeUrl + fileName + ".mp3";
            return url;

        } catch (Exception e){
            e.printStackTrace();
            logger.error("微信获取临时素材(录音)并上传到服务器失败:" + e);
        }
        return null;
    }
文章来源:https://blog.csdn.net/qq_54386866/article/details/135401487
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。