23
23
import android .text .TextUtils ;
24
24
import android .util .Log ;
25
25
import android .view .KeyEvent ;
26
+ import android .view .TextureView ;
26
27
import android .view .View ;
27
28
import android .view .Window ;
28
29
import android .view .WindowManager ;
@@ -290,6 +291,8 @@ protected void onCreate(Bundle savedInstanceState) {
290
291
//} else {
291
292
// mStreamer.setOffscreenPreview(720, 1280);
292
293
//}
294
+ //断网等异常case触发自动重连
295
+ mStreamer .setEnableAutoRestart (true , 3000 );
293
296
mStreamer .setFrontCameraMirror (mFrontMirrorCheckBox .isChecked ());
294
297
mStreamer .setMuteAudio (mMuteCheckBox .isChecked ());
295
298
mStreamer .setEnableAudioPreview (mAudioPreviewCheckBox .isChecked ());
@@ -328,7 +331,7 @@ public void onError(ImgTexFilterBase filter, int errno) {
328
331
}
329
332
330
333
private void initBeautyUI () {
331
- String [] items = new String []{"DISABLE" , "BEAUTY_SOFT" , "SKIN_WHITEN" , "BEAUTY_ILLUSION" ,
334
+ String [] items = new String []{"DISABLE" , "BEAUTY_SOFT" , "SKIN_WHITEN" , "BEAUTY_ILLUSION" ,
332
335
"BEAUTY_DENOISE" , "BEAUTY_SMOOTH" , "BEAUTY_PRO" , "DEMO_FILTER" , "GROUP_FILTER" };
333
336
ArrayAdapter <String > adapter = new ArrayAdapter <>(this ,
334
337
android .R .layout .simple_spinner_item , items );
@@ -428,6 +431,7 @@ public void onResume() {
428
431
super .onResume ();
429
432
startCameraPreviewWithPermCheck ();
430
433
mStreamer .onResume ();
434
+ mStreamer .setUseDummyAudioCapture (false );
431
435
if (mWaterMarkCheckBox .isChecked ()) {
432
436
showWaterMark ();
433
437
}
@@ -438,6 +442,7 @@ public void onResume() {
438
442
public void onPause () {
439
443
super .onPause ();
440
444
mStreamer .onPause ();
445
+ mStreamer .setUseDummyAudioCapture (true );
441
446
mStreamer .stopCameraPreview ();
442
447
hideWaterMark ();
443
448
}
@@ -452,6 +457,7 @@ public void onDestroy() {
452
457
if (mTimer != null ) {
453
458
mTimer .cancel ();
454
459
}
460
+ mStreamer .setOnLogEventListener (null );
455
461
mStreamer .release ();
456
462
}
457
463
@@ -577,6 +583,7 @@ public void onInfo(int what, int msg1, int msg2) {
577
583
break ;
578
584
case StreamerConstants .KSY_STREAMER_OPEN_STREAM_SUCCESS :
579
585
Log .d (TAG , "KSY_STREAMER_OPEN_STREAM_SUCCESS" );
586
+ mShootingText .setText (STOP_STRING );
580
587
mChronometer .setBase (SystemClock .elapsedRealtime ());
581
588
mChronometer .start ();
582
589
beginInfoUploadTimer ();
@@ -671,6 +678,10 @@ public void onError(int what, int msg1, int msg2) {
671
678
case StreamerConstants .KSY_STREAMER_CAMERA_ERROR_SERVER_DIED :
672
679
Log .d (TAG , "KSY_STREAMER_CAMERA_ERROR_SERVER_DIED" );
673
680
break ;
681
+ //Camera was disconnected due to use by higher priority user.
682
+ case StreamerConstants .KSY_STREAMER_CAMERA_ERROR_EVICTED :
683
+ Log .d (TAG , "KSY_STREAMER_CAMERA_ERROR_EVICTED" );
684
+ break ;
674
685
default :
675
686
Log .d (TAG , "what=" + what + " msg1=" + msg1 + " msg2=" + msg2 );
676
687
break ;
@@ -690,17 +701,39 @@ public void run() {
690
701
}
691
702
}, 5000 );
692
703
break ;
704
+ case StreamerConstants .KSY_STREAMER_FILE_PUBLISHER_CLOSE_FAILED :
705
+ case StreamerConstants .KSY_STREAMER_FILE_PUBLISHER_ERROR_UNKNOWN :
706
+ case StreamerConstants .KSY_STREAMER_FILE_PUBLISHER_OPEN_FAILED :
707
+ case StreamerConstants .KSY_STREAMER_FILE_PUBLISHER_WRITE_FAILED :
708
+ break ;
693
709
case StreamerConstants .KSY_STREAMER_VIDEO_ENCODER_ERROR_UNSUPPORTED :
694
710
case StreamerConstants .KSY_STREAMER_VIDEO_ENCODER_ERROR_UNKNOWN :
695
- handleEncodeError ();
711
+ {
712
+ handleEncodeError ();
713
+ stopStream ();
714
+ mMainHandler .postDelayed (new Runnable () {
715
+ @ Override
716
+ public void run () {
717
+ startStream ();
718
+ }
719
+ }, 3000 );
720
+ }
721
+ break ;
696
722
default :
697
- stopStream ();
698
- mMainHandler .postDelayed (new Runnable () {
699
- @ Override
700
- public void run () {
701
- startStream ();
702
- }
703
- }, 3000 );
723
+ if (mStreamer .getEnableAutoRestart ()) {
724
+ mShootingText .setText (START_STRING );
725
+ mShootingText .postInvalidate ();
726
+ mRecording = false ;
727
+ stopChronometer ();
728
+ } else {
729
+ stopStream ();
730
+ mMainHandler .postDelayed (new Runnable () {
731
+ @ Override
732
+ public void run () {
733
+ startStream ();
734
+ }
735
+ }, 3000 );
736
+ }
704
737
break ;
705
738
}
706
739
}
0 commit comments