在Rtmp和Voip通话过程中,有的时候,需要发送音频空包。这个时候需要替换音频包或者按照一定的频率发送音频空包。
public void run() {
try {
while (!mStopFlag) {
//eh880音频无法释放
while (mPauseFlag) {
/**
* 发送空包
* 保证视频播放不黑屏
*/
try {
byte clearM = 0;
Arrays.fill(mRecordBuffer, clearM);
if (mAudioEncoder != null) {
mAudioEncoder.offerEncoder(mRecordBuffer);
}
Thread.sleep(23);//0.022ms https://www.jianshu.com/p/030288800a61
/*Thread.sleep(1000);*/
} catch (Exception e){
e.printStackTrace();
}
}
if(mAudioRecord!=null) {
int readLen = mAudioRecord.read(mRecordBuffer, 0, mRecordBufferSize);
hasAudio(readLen);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
@DebugLog
private void hasAudio(int readLen) {
if (readLen > 0) {
if (mMute) {
byte clearM = 0;//将以前的音频包,全部替换为空。
Arrays.fill(mRecordBuffer, clearM);
}
if (mAudioEncoder != null) {
mAudioEncoder.offerEncoder(mRecordBuffer);
}
}
}
网友评论