From e525309004c79db9b9e18d3acc36628b2e2968dd Mon Sep 17 00:00:00 2001 From: "braveyao@webrtc.org" Date: Thu, 9 May 2013 08:52:50 +0000 Subject: [PATCH] WebRTCDemo Android doesn't hangle activity recreation correctly. Also optimize Statsview a little bit. BUG=1740 TEST=Manual test with WebRTCDemo Android R=fischman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1439005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3993 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../test/android/jni/vie_android_java_api.cc | 8 ++-- .../org/webrtc/videoengineapp/WebRTCDemo.java | 39 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/webrtc/video_engine/test/android/jni/vie_android_java_api.cc b/webrtc/video_engine/test/android/jni/vie_android_java_api.cc index 754ca892ef..0f537e7da1 100644 --- a/webrtc/video_engine/test/android/jni/vie_android_java_api.cc +++ b/webrtc/video_engine/test/android/jni/vie_android_java_api.cc @@ -287,15 +287,15 @@ JNIEXPORT jint JNICALL Java_org_webrtc_videoengineapp_ViEAndroidJavaAPI_GetVideo __android_log_write(ANDROID_LOG_DEBUG, WEBRTC_LOG_TAG, "GetVideoEngine"); - VideoEngine::SetAndroidObjects(webrtcGlobalVM, context); - // Check if already got if (vieData.vie) { - __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, + __android_log_write(ANDROID_LOG_INFO, WEBRTC_LOG_TAG, "ViE already got"); - return -1; + return 0; } + VideoEngine::SetAndroidObjects(webrtcGlobalVM, context); + // Create vieData.vie = VideoEngine::Create(); if (!vieData.vie) { diff --git a/webrtc/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java b/webrtc/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java index 8cac759872..b8a61cd4c5 100644 --- a/webrtc/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java +++ b/webrtc/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java @@ -336,20 +336,23 @@ public class WebRTCDemo extends TabActivity implements IViEAndroidCallback, @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + // Only draw Stats in Main tab. + if(mTabHost.getCurrentTabTag() == "tab_video") { + Paint loadPaint = new Paint(); + loadPaint.setAntiAlias(true); + loadPaint.setTextSize(16); + loadPaint.setARGB(255, 255, 255, 255); - Paint loadPaint = new Paint(); - loadPaint.setAntiAlias(true); - loadPaint.setTextSize(16); - loadPaint.setARGB(255, 255, 255, 255); - - canvas.drawText("#calls " + numCalls, 4, 152, loadPaint); - - String loadText; - loadText = "> " + frameRateI + " fps/" + bitRateI + "k bps/ " + packetLoss; - canvas.drawText(loadText, 4, 172, loadPaint); - loadText = "< " + frameRateO + " fps/ " + bitRateO + "k bps"; - canvas.drawText(loadText, 4, 192, loadPaint); + canvas.drawText("#calls " + numCalls, 4, 222, loadPaint); + String loadText; + loadText = "> " + frameRateI + " fps/" + + bitRateI/1024 + " kbps/ " + packetLoss; + canvas.drawText(loadText, 4, 242, loadPaint); + loadText = "< " + frameRateO + " fps/ " + + bitRateO/1024 + " kbps"; + canvas.drawText(loadText, 4, 262, loadPaint); + } updateDisplay(); } @@ -732,6 +735,12 @@ public class WebRTCDemo extends TabActivity implements IViEAndroidCallback, return -1; } + // Suggest to use the voice call audio stream for hardware volume controls + setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); + return 0; + } + + private int startVoiceEngine() { // Create channel voiceChannel = vieAndroidAPI.VoE_CreateChannel(); if (0 > voiceChannel) { @@ -739,12 +748,6 @@ public class WebRTCDemo extends TabActivity implements IViEAndroidCallback, return -1; } - // Suggest to use the voice call audio stream for hardware volume controls - setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); - return 0; - } - - private int startVoiceEngine() { // Set local receiver if (0 != vieAndroidAPI.VoE_SetLocalReceiver(voiceChannel, receivePortVoice)) {