不好意思,误导大家了,这种将silk解密的方式只是在小程序测试的时候可以,上线以后这种方法是不行的,还是需要使用解密转码。参见:https://github.com/kn007/silk-v3-decoder

微信小程序的录音文件就是个坑。。。

录音文件为silk格式,说是silk其实是base64加密后的webm格式,只需将其转为webm格式即可。

我在解决问题的过程中,学到了,遇到问题一定要抓住本质,本来我以为silk是啥格式,这不懵逼了,赶紧找audio是否能播放silk,不能播放就去找网上的转换代码,完全没考虑看看录音文件里面是什么内容,折腾了一顿以后回到问题的本质,silk文件里的内容是base64加密后的webm格式。这样进行base64解密就可以了。

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import com.qcloud.Utilities.Base64;

public class Base64Webm {

public static void readTxtFile(String filePath) {

try {

String encoding = "utf-8";

File file = new File(filePath);

if (file.isFile() && file.exists()) { // 判断文件是否存在

InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式

BufferedReader bufferedReader = new BufferedReader(read);

StringBuilder lineTxt = new StringBuilder();

String line = null;

while ((line = bufferedReader.readLine()) != null) {

lineTxt.append(line);

}

read.close();

String olddata = lineTxt.toString();

olddata = olddata.replace("data:audio/webm;base64,", "");

System.out.println(olddata);

try {

File webmFile = new File("D:\\project\\liulei\\Doc\\互动直播室\\微课网页开发\\silk2mp3\\caole.webm");

byte[] bt = Base64.decode(olddata) ;

FileOutputStream in = new FileOutputStream(webmFile);

try {

in.write(bt, 0, bt.length);

in.close();

// boolean success=true;

// System.out.println("写入文件成功");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} else {

System.out.println("找不到指定的文件");

}

} catch (Exception e) {

System.out.println("读取文件内容出错");

e.printStackTrace();

}

}

public static void main(String[] args) {

readTxtFile("D:\\project\\liulei\\Doc\\互动直播室\\微课网页开发\\silk2mp3\\liulie.silk");

}

}

总结

以上所述是小编给大家介绍的微信小程序录音文件格式silk遇到的问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

java silk转mp3_微信小程序录音文件格式silk遇到的问题及解决方法相关推荐

  1. 微信小程序 录音文件格式silk 坑

    不好意思,误导大家了,这种将silk解密的方式只是在小程序测试的时候可以,上线以后这种方法是不行的,还是需要使用解密转码.参见:https://github.com/kn007/silk-v3-dec ...

  2. 微信小程序在开发中遇到的问题与解决方法

    微信小程序在开发中遇到的问题与解决方法 参考文章: (1)微信小程序在开发中遇到的问题与解决方法 (2)https://www.cnblogs.com/zjjDaily/p/8032142.html ...

  3. 微信小程序引入vant-weapp组件遇到的bug以及解决方法

    微信小程序引入vant-weapp组件遇到的bug问题 原本百度了一波,说只要安装了node还有npm之后,使用gitBash命令行工具直接cd到根目录下然后直接引入以下代码: npm i vant- ...

  4. 微信小程序input组件边框不显示问题的解决方法

    问题情景 在微信小程序开发中经常用到input组件,但是如果按下面的wxml代码去写,input的边框是不会显示的,只有在鼠标点过去的时候才会有个光标 <view class="set ...

  5. 微信小程序不支持打开非业务域名_微信小程序显示不支持打开非业务域名的解决方法...

    随着科技时代的进步,无论是软件还是硬件都在飞速的成长和创新,从以前大多数都是软件到现在快应用小程序的出现,都是经历了非常多的时间演变,才慢慢的到了如今这个地步. 快应用:九大手机厂商基于硬件平台共同推 ...

  6. 微信小程序上传图片到服务器总是失败_微信小程序上传图片过大导致请求失败的解决方法...

    很多时候我们都会碰到小程序上传图片时因为图片过大而导致请求失败,同时出现各种各样的问题,那么今天来给大家写一个微信小程序上传图片过大导致请求失败的完美解决办法. 以云开发小程序图片检测为例,如果图片过 ...

  7. 小程序改了服务器域名无法显示,微信小程序显示不支持打开非业务域名的解决方法...

    随着科技时代的进步,无论是软件还是硬件都在飞速的成长和创新,从以前大多数都是软件到现在快应用小程序的出现,都是经历了非常多的时间演变,才慢慢的到了如今这个地步. 快应用:九大手机厂商基于硬件平台共同推 ...

  8. 微信小程序 渲染层网络错误_详解微信小程序「渲染层网络层错误」的解决方法...

    问题描述: 情况是这样的,我需要在小程序中通过image标签显示三张我的图片,毫无疑问,其重点部分肯定在image的src属性上,请看思路分析: 我们可以新建一个专门放图片的文件夹,然后将我们项目所需 ...

  9. 【微信小程序】fail url not in domain list 解决方法

    1.uploadFile:fail url not in domain list 图片上传失败 分析:正式上传之后,图片上传报错uploadFile:fail url not in domain li ...

最新文章

  1. Collection接口的常用方法
  2. Centos7将firewall替换成iptables
  3. C语言学习之求1+2+3+···+100的值
  4. 为什么人生气时说话用喊的
  5. 开源app之MyHearts
  6. mongodb命令使用大全(常用命令)
  7. python调用soap_如何在python zeep中调用soap api而不使用wsdl(非wsdl模式)?使用用户和密码身份验证调用位置URL...
  8. Nginx负载均衡服务器实现会话粘贴的几种方式
  9. frist Django app — 一、 创建工程
  10. 联想主板9针开关接线图_空气开关、断路器、漏电保护,汇总学习一下
  11. Phil Coulson
  12. 如何给文件夹自定义图标?
  13. nero如何刻录光盘
  14. SpringBoot 整合 Elasticsearch 实现海量级数据搜索
  15. 你知道java中重载和重写的区别吗?(详细解说)
  16. 九:什么是热部署,为什么要用这个?
  17. 春招计算机学校,衡东计算机IT春招学校排名
  18. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新
  19. Python数据分析上机
  20. 仓库码放要求_仓库货物堆放标准是怎样的?货物堆放原则和方法详解

热门文章

  1. R语言ggplot2可视化分组散点图、使用scale_shape_manual函数、scale_color_manual函数、scale_size_manual函自定义设置分组散点的形状、大小、颜色
  2. R语言ggplot2可视化增大图例字体实战
  3. 机器学习中的没有免费的午餐定律是什么?“没有免费的午餐”对你意味着什么?没有免费午餐定律定律能给数据科学家提供什么启示?
  4. 数据库索引的工作原理及其种类
  5. python函数参数*arg和**kwargs分别代表什么?
  6. 核磁共振影像数据处理-2-DWI实践:计算ADC (MD) map、Li‘s have a solution and plan.
  7. php不重复随机加时间毫秒,PHP实现的毫秒定时器,同时解决进程不重复堆积
  8. R语言入门——ggplot2
  9. java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
  10. python for 循环中使用 remove 删除列表中的元素