Android開源:LQRAudioRecord - 高仿微信語音庫
LQRAudioRecord
本庫集成錄音與播音功能,使用簡單方便,讓IM集成語音不再是難題。
一、簡述 該庫可進行語音錄制及播放,方便IM項目集成語音功能。
- 錄音可獲取分貝,并默認回傳10秒倒計時。
- 播放時貼耳自動轉為聽筒播放,離耳時轉公放。
以下是Demo效果:
二、引用初始化 ###1、依賴
compile 'com.lqr.audio:library:1.0.0'
權限
<!-- 錄音 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--播音-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
三、集成
1、常規設置 ####1)設置最大時長:
//默認時長60秒
AudioRecordManager.getInstance(this).setMaxVoiceDuration(120);
2)設置語音位置:
//該庫內不對文件夾是否存在進行判斷,所以請在你的項目中自行判斷
mAudioDir = new File(Environment.getExternalStorageDirectory(), "LQR_AUDIO");
if (!mAudioDir.exists()) {
mAudioDir.mkdirs();
}
AudioRecordManager.getInstance(this).setAudioSavePath(mAudioDir.getAbsolutePath());</code></pre>
2、錄音
錄音使用的是 AudioRecordManager 類。
1)基本方法:
//開始錄音
AudioRecordManager.getInstance(MainActivity.this).startRecord();
//將要取消錄音(參與微信手指上滑)
AudioRecordManager.getInstance(MainActivity.this).willCancelRecord();
//繼續錄音(參與微信手指上滑后加下滑回到原位)
AudioRecordManager.getInstance(MainActivity.this).continueRecord();
//停止錄音
AudioRecordManager.getInstance(MainActivity.this).stopRecord();
//銷毀錄音
AudioRecordManager.getInstance(MainActivity.this).destroyRecord();</code></pre>
2)錄音監聽: 該庫提供IAudioRecordListener接口,方便用戶對錄音中不同事件進行處理,具體使用請參考DEMO代碼(代碼較多,請根據自己的項目修改),接口描述:
public interface IAudioRecordListener {
/**
* 初始化提示視圖
*/
void initTipView();
/**
* 設置倒計時提示視圖
*
* @param counter 10秒倒計時
*/
void setTimeoutTipView(int counter);
/**
* 設置正在錄制提示視圖
*/
void setRecordingTipView();
/**
* 設置語音長度太短提示視圖
*/
void setAudioShortTipView();
/**
* 設置取消提示視圖
*/
void setCancelTipView();
/**
* 銷毀提示視圖
*/
void destroyTipView();
/**
* 開始錄制
* 如果是做IM的話,這里可以發送一個消息,如:對方正在講話
*/
void onStartRecord();
/**
* 錄制結束
*
* @param audioPath 語音文件路徑
* @param duration 語音文件時長
*/
void onFinish(Uri audioPath, int duration);
/**
* 分貝改變
*
* @param db 分貝
*/
void onAudioDBChanged(int db);
}</code></pre>
3、播音
播音使用的是 AudioPlayManager 類。
1)開始播放:
AudioPlayManager.getInstance().startPlay(MainActivity.this, audioUri, new IAudioPlayListener() {
@Override
public void onStart(Uri var1) {
//開播(一般是開始語音消息動畫)
}
@Override
public void onStop(Uri var1) {
//停播(一般是停止語音消息動畫)
}
@Override
public void onComplete(Uri var1) {
//播完(一般是停止語音消息動畫)
}
});</code></pre>
2)結束播放:
AudioPlayManager.getInstance().stopPlay();
項目主頁:http://www.baiduhome.net/lib/view/home/1491891707877