当前位置:主页 > java教程 >

微信小程序录音文件格式silk遇到的问题及解决方法

发布:2022-11-24 15:32:38 83


本站精选了一篇微信小程序相关的编程文章,网友向雅艳根据主题投稿了本篇教程内容,涉及到微信小程序录音格式、微信、语音silk、微信小程序格式相关内容,已被258网友关注,涉猎到的知识点内容可以在下方电子书获得。

不好意思,误导大家了,这种将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遇到的问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!


参考资料

相关文章

  • 微信小程序input框中加入小图标的实例代码

    发布:2019-11-25

    这篇文章主要介绍了微信小程序input框中加入小图标的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下


  • 微信小程序获取自己所处位置的经纬度坐标的详细代码

    发布:2020-01-03

    这篇文章主要介绍了微信小程序实现获取自己所处位置的经纬度坐标功能,涉及微信小程序地图功能获取经纬度信息的相关操作技巧,需要的朋友可以参考下


  • 微信小程序与内嵌网页交互实现支付功能实现方法

    发布:2019-11-02

    这篇文章主要介绍了详解微信小程序与内嵌网页交互实现支付功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • 微信小程序修改swiper默认指示器样式示例效果

    发布:2020-02-10

    这篇文章主要介绍了微信小程序修改swiper默认指示器样式的实例代码,代码块是从微信开发文档中心复制的代码块,在此基础上修改官方swiper样式,需要的朋友可以参考下


  • 微信小程序获取用户绑定手机号代码分享

    发布:2020-02-21

    这篇文章主要给大家介绍了关于微信小程序如何获取用户绑定手机号的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用微信小程序具有一定的参考学习价值,需要的朋友们下


  • 微信小程序实现自定义modal弹窗封装教程

    发布:2020-01-16

    这篇文章主要介绍了小程序自定义modal弹窗封装实现方法,本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友可以参考下


  • 微信小程序开发中如何增加mixin扩展

    发布:2019-07-29

    Mixin是一种思想,用部分实现的接口来实现代码复用。可以用来解决多继承的问题,又可以用来扩展功能。下面这篇文章主要给大家介绍了关于为微信小程序增加mixin扩展的相关资料,需要的朋友可


  • 微信小程序传值获取值的实例方法

    发布:2020-05-16

    这篇文章主要介绍了微信小程序传值以及获取值方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


网友讨论