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

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

如果有需要,尽量参考评论中的解决办法吧. https://blog.csdn.net/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 2016年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代码

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

 

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

 

 

你可能感兴趣的:(javaEE)