2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java 将微信录音amr转换为mp3格式

java 将微信录音amr转换为mp3格式

时间:2024-05-13 10:25:27

相关推荐

java 将微信录音amr转换为mp3格式

更新,这是4前写的了文章了,今天找东西,登录账号发现一堆几年前的评论,真抱歉,我没回复你们

如果有需要,尽量参考评论中的解决办法吧./dadiyang/article/details/85003240

我没有确认过是否可行,大致看了下应该是可以的. 毕竟如果让现在的我再实现音视频格式转换,我会直接使用ffmpeg

以下原文

------------------------

最近一直都在做微信相关的项目

有个需求是上传录音,然后再播放

实现方法是,调用微信接口,录音,上传到微信服务器,当用户保存的时候,从微信服务器下载下来,然后再转码成为MP3格式,在页面使用audio标签播放

原因,ios和安卓的录音格式不同,而audio标签不能直接播放ios的录音文件(或者ios无法播放amr格式文件,忘记了),为了实现兼容性,将音频转码后,再给用户查看播放

使用jave实现,上网找了很久,很久前也就想弄的,一直没实现,今天找到了一直想关文章看了下,调试了下,发现可以用,就想记下来

上网下载jave-1.0.2.jar ,一般该jar包只能在window下正常工作,要在linux下工作,需要替换改jar里面的文件,如果以后忘记了,百度下就好

java代码,

package convertVoice;import it.sauronsoftware.jave.AudioAttributes;import it.sauronsoftware.jave.Encoder;import it.sauronsoftware.jave.EncoderException;import it.sauronsoftware.jave.EncodingAttributes;import it.sauronsoftware.jave.InputFormatException;import java.io.File;/*** @exception* @author zs* @version 1月31日 下午6:12:20* @description* @version 1.0*/public class convertVoice {public static void main(String[] args) throws Exception {change();}public static void change(){File source = new File("E:\\gtGEHFWPLYxlsJmjaMJJYwuvvQxh6qHcZxzV-FuvCtkWM9XFimee0L2Zi9sCepqS.amr");File target = new File("D:\\1381370093615.mp3");AudioAttributes audio = new AudioAttributes();Encoder encoder = new Encoder();audio.setCodec("libmp3lame");EncodingAttributes attrs = new EncodingAttributes();attrs.setFormat("mp3");attrs.setAudioAttributes(audio);try {encoder.encode(source, target, attrs);} catch (IllegalArgumentException e) {e.printStackTrace();} catch (InputFormatException e) {e.printStackTrace();} catch (EncoderException e) {e.printStackTrace();}}}

只需要传入两个路径即可,另外,运行时会报错,但是生成的文件照样可以正常运行,报错原因,amr编码未设置,不懂怎么设置,就不设置了.

转码前,34KB的amr文件,转码后,386KB的MP3文件 →_→ 我都不知道说什么,不理他,反正不是我用的功能

html代码

<audio src="media/1381370093615.mp3" controls="controls"></audio>

我试了下,这样写就行了,在页面点击播放,就能播放,但是进度条无法调戏,点不到,只有开始/暂停按钮,音量调节按钮

弄了两个jar,一个window版本的,一个是linux版本的,但是发现linux版本的jar在window下也能正常工作,想把它们两个也传上来的,但是不知道怎么传,不理它

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。