[*] 日常优化
This commit is contained in:
@@ -117,13 +117,15 @@ public class MixerProcesser extends Thread implements JavaAudioDeviceModule.Samp
|
||||
if(this.source == Source.NATIVE) {
|
||||
recordSize = this.audioRecord.read(byteBuffer, byteBuffer.capacity());
|
||||
if(recordSize != byteBuffer.capacity()) {
|
||||
Thread.yield();
|
||||
continue;
|
||||
}
|
||||
recordData = Arrays.copyOfRange(byteBuffer.array(), byteBuffer.arrayOffset(), byteBuffer.capacity() + byteBuffer.arrayOffset());
|
||||
pts += recordData.length * (1_000_000 / this.sampleRate / 2);
|
||||
this.recordClient.onPcm(pts, recordData);
|
||||
} else if(this.source == Source.WEBRTC) {
|
||||
local = this.local.poll(100, TimeUnit.MILLISECONDS);
|
||||
// 平均10毫秒
|
||||
local = this.local.poll(64, TimeUnit.MILLISECONDS);
|
||||
remote = this.remote.poll();
|
||||
if(local != null && remote != null) {
|
||||
// Log.d(MixerProcesser.class.getSimpleName(), String.format("""
|
||||
@@ -161,9 +163,11 @@ public class MixerProcesser extends Thread implements JavaAudioDeviceModule.Samp
|
||||
pts += remoteData.length * (1_000_000 / remote.getSampleRate() / 2);
|
||||
this.recordClient.onPcm(pts, remoteData);
|
||||
} else {
|
||||
Thread.yield();
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
Thread.yield();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(MixerProcesser.class.getSimpleName(), "音频处理异常", e);
|
||||
|
||||
@@ -233,7 +233,7 @@ public class RecordClient extends Client implements VideoSink {
|
||||
bufferInfo.presentationTimeUs -= pts;
|
||||
this.mediaMuxer.writeSampleData(trackIndex, outputBuffer, bufferInfo);
|
||||
this.audioCodec.releaseOutputBuffer(outputIndex, false);
|
||||
Log.d(RecordClient.class.getSimpleName(), "录制音频帧(时间戳):" + bufferInfo.flags + " - " + (bufferInfo.presentationTimeUs / 1_000_000F));
|
||||
// Log.d(RecordClient.class.getSimpleName(), "录制音频帧(时间戳):" + (bufferInfo.presentationTimeUs / 1_000_000F));
|
||||
// if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME == MediaCodec.BUFFER_FLAG_KEY_FRAME) {
|
||||
// } else if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG == MediaCodec.BUFFER_FLAG_CODEC_CONFIG) {
|
||||
// } else if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM == MediaCodec.BUFFER_FLAG_END_OF_STREAM) {
|
||||
@@ -327,7 +327,7 @@ public class RecordClient extends Client implements VideoSink {
|
||||
bufferInfo.presentationTimeUs -= pts;
|
||||
this.mediaMuxer.writeSampleData(trackIndex, outputBuffer, bufferInfo);
|
||||
this.videoCodec.releaseOutputBuffer(outputIndex, false);
|
||||
Log.d(RecordClient.class.getSimpleName(), "录制视频帧(时间戳):" + (bufferInfo.presentationTimeUs / 1_000_000F));
|
||||
// Log.d(RecordClient.class.getSimpleName(), "录制视频帧(时间戳):" + (bufferInfo.presentationTimeUs / 1_000_000F));
|
||||
// if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME == MediaCodec.BUFFER_FLAG_KEY_FRAME) {
|
||||
// } else if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG == MediaCodec.BUFFER_FLAG_CODEC_CONFIG) {
|
||||
// } else if (bufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM == MediaCodec.BUFFER_FLAG_END_OF_STREAM) {
|
||||
|
||||
Reference in New Issue
Block a user