Android录音上传服务器进行播放问题(amr 2 wav)

     项目中需要录音上传服务器,服务器端使用浏览器播放,

有2种方案:

 1. Android App录制wav格式音频上传服务器,服务器直接可以使用浏览器进行播放;

 2. Android App录制amr格式音频上传服务器,服务器对音频进行转码为wav格式进行播放;

方案1:

 思路1: 使用AudioRecord录制pcm格式音频,然后pcm转wav格式音频;

 思路2: 使用Lame直接录制mp3格式音频;

方案2:

思路:使用MediaRecord录制amr格式音频,上传服务器使用JAVE转换为wav格式音频;

优缺点:

强烈推荐方案2,录制音频体积小,上传服务器节省流量,加快上传速度;

JAVE简介

1.JAVE是Java Audio Video Encoder简写,是Java包装的ffmpeg项目,可以将音频或视频从一种格式转码另一种格式,可以分离和转码音视频,可以调整视频大小、比例等;

2. 官方网站:http://www.sauronsoftware.it/projects/jave/index.php

amr转mp3/wav代码:

1.下载jave.jar;

2.代码如下:

package com.niubashaoye.java.demo;

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;

public class Amr2Mp3 {

	public static void main(String[] args) throws Exception {
		String path1 = "E:\\124.amr";
		String path2 = "E:\\124.wav";
		changeToMp3(path1, path2);
	}

	public static void changeToMp3(String sourcePath, String targetPath) {
		File source = new File(sourcePath);
		File target = new File(targetPath);
		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();
		}
	}

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值