折腾一下语音发送。其实思路应该是简单的吧,既然图片可以存,语音也就存,然后发就行了。主要看看怎么放,大小如何这些。
总结下做法。
1:利用MediaRecorder、MediaPlayer两个类,进行音频的记录和播放。
2:要加权限。
<!-- 音频权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
3:记录,主要分为,设置各类参数(编码方式,位置等):
m_voiceName = String.format("%1$tY-%1$tm-%1$td %1$tH-%1$tM-%1$tS %1$tL",
new Date())+".3gp";
/** 设置语音参数*/
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(Environment.getExternalStorageDirectory().toString()
+"/Pictures/CGF/" + m_voiceName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mRecorder.start();
4:播放,只要设置路径就能播放了。
5:为了能在Socket进行传递,把音频文件读取为二进制文件,然后转成String类,发送。接收端String转二进制文件,写入到文件中,再用mediaPlayer播放。整体思路为如此。
6:一个tip:在测试中,同样的代码在Android4.0的samsung能跑,但是再5.0的Nokia不能跑,经过反复研究,出现这个现象是,在文件命名中不能出现“:”(我是时间中有分号)。但是百度查阅,大家的情况不太一样,有的没有分号也会有这个问题,总之文件名简单点,一般都是没事的。
语音不方便截图,就先这样吧。记录完毕