@@ -27,8 +27,6 @@ class VideoFileRenderer implements VideoSink, SamplesReadyCallback {
27
27
private static final String TAG = "VideoFileRenderer" ;
28
28
private final HandlerThread renderThread ;
29
29
private final Handler renderThreadHandler ;
30
- private final HandlerThread fileThread ;
31
- private final Handler fileThreadHandler ;
32
30
private final HandlerThread audioThread ;
33
31
private final Handler audioThreadHandler ;
34
32
private final FileOutputStream videoOutFile ;
@@ -63,8 +61,6 @@ class VideoFileRenderer implements VideoSink, SamplesReadyCallback {
63
61
renderThread = new HandlerThread (TAG + "RenderThread" );
64
62
renderThread .start ();
65
63
renderThreadHandler = new Handler (renderThread .getLooper ());
66
- fileThread = new HandlerThread (TAG + "FileThread" );
67
- fileThread .start ();
68
64
if (withAudio ) {
69
65
audioThread = new HandlerThread (TAG + "AudioThread" );
70
66
audioThread .start ();
@@ -73,7 +69,6 @@ class VideoFileRenderer implements VideoSink, SamplesReadyCallback {
73
69
audioThread = null ;
74
70
audioThreadHandler = null ;
75
71
}
76
- fileThreadHandler = new Handler (fileThread .getLooper ());
77
72
bufferInfo = new MediaCodec .BufferInfo ();
78
73
this .sharedContext = sharedContext ;
79
74
@@ -159,23 +154,8 @@ void release() {
159
154
cleanupBarrier .countDown ();
160
155
}
161
156
ThreadUtils .awaitUninterruptibly (cleanupBarrier );
162
- fileThreadHandler .post (() -> {
163
- mediaMuxer .stop ();
164
- mediaMuxer .release ();
165
- try {
166
- videoOutFile .close ();
167
- Log .d (TAG , "Video written to disk as " + outputFileName );
168
- } catch (IOException e ) {
169
- throw new RuntimeException ("Error closing output file" , e );
170
- }
171
- fileThread .quit ();
172
- });
173
- try {
174
- fileThread .join ();
175
- } catch (InterruptedException e ) {
176
- Thread .currentThread ().interrupt ();
177
- Log .e (TAG , "Interrupted while waiting for the write to disk to complete." , e );
178
- }
157
+ mediaMuxer .stop ();
158
+ mediaMuxer .release ();
179
159
}
180
160
181
161
private boolean encoderStarted = false ;
@@ -308,7 +288,7 @@ public void onWebRtcAudioRecordSamplesReady(JavaAudioDeviceModule.AudioSamples a
308
288
format .setInteger (MediaFormat .KEY_CHANNEL_COUNT , audioSamples .getChannelCount ());
309
289
format .setInteger (MediaFormat .KEY_SAMPLE_RATE , audioSamples .getSampleRate ());
310
290
format .setInteger (MediaFormat .KEY_BIT_RATE , 64 * 1024 );
311
- format .setInteger (MediaFormat .KEY_AAC_PROFILE , MediaCodecInfo .CodecProfileLevel .AACObjectMain );
291
+ format .setInteger (MediaFormat .KEY_AAC_PROFILE , MediaCodecInfo .CodecProfileLevel .AACObjectLC );
312
292
audioEncoder .configure (format , null , null , MediaCodec .CONFIGURE_FLAG_ENCODE );
313
293
audioEncoder .start ();
314
294
audioInputBuffers = audioEncoder .getInputBuffers ();
0 commit comments