Changeset 5102 for pjproject/trunk/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
- Timestamp:
- May 28, 2015 7:14:24 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
r5017 r5102 31 31 import org.pjsip.pjsua2.*; 32 32 33 class VideoPreviewHandler implements SurfaceHolder.Callback 34 { 35 public boolean videoPreviewActive = false; 36 37 public void updateVideoPreview(SurfaceHolder holder) 38 { 39 if (MainActivity.currentCall != null && 40 MainActivity.currentCall.vidWin != null && 41 MainActivity.currentCall.vidPrev != null) 42 { 43 if (videoPreviewActive) { 44 VideoWindowHandle vidWH = new VideoWindowHandle(); 45 vidWH.getHandle().setWindow(holder.getSurface()); 46 VideoPreviewOpParam vidPrevParam = new VideoPreviewOpParam(); 47 vidPrevParam.setWindow(vidWH); 48 try { 49 MainActivity.currentCall.vidPrev.start(vidPrevParam); 50 } catch (Exception e) { 51 System.out.println(e); 52 } 53 } else { 54 try { 55 MainActivity.currentCall.vidPrev.stop(); 56 } catch (Exception e) { 57 System.out.println(e); 58 } 59 } 60 } 61 } 62 63 @Override 64 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) 65 { 66 updateVideoPreview(holder); 67 } 68 69 @Override 70 public void surfaceCreated(SurfaceHolder holder) 71 { 72 73 } 74 75 @Override 76 public void surfaceDestroyed(SurfaceHolder holder) 77 { 78 try { 79 MainActivity.currentCall.vidPrev.stop(); 80 } catch (Exception e) { 81 System.out.println(e); 82 } 83 } 84 } 85 33 86 public class CallActivity extends Activity 34 87 implements Handler.Callback, SurfaceHolder.Callback … … 36 89 37 90 public static Handler handler_; 91 private static VideoPreviewHandler previewHandler = 92 new VideoPreviewHandler(); 38 93 39 94 private final Handler handler = new Handler(this); … … 46 101 setContentView(R.layout.activity_call); 47 102 48 SurfaceView surface View= (SurfaceView)103 SurfaceView surfaceInVideo = (SurfaceView) 49 104 findViewById(R.id.surfaceIncomingVideo); 105 SurfaceView surfacePreview = (SurfaceView) 106 findViewById(R.id.surfacePreviewCapture); 107 Button buttonShowPreview = (Button) 108 findViewById(R.id.buttonShowPreview); 109 50 110 if (MainActivity.currentCall == null || 51 111 MainActivity.currentCall.vidWin == null) 52 112 { 53 surfaceView.setVisibility(View.GONE); 54 } 55 surfaceView.getHolder().addCallback(this); 113 surfaceInVideo.setVisibility(View.GONE); 114 buttonShowPreview.setVisibility(View.GONE); 115 } 116 setupVideoPreview(surfacePreview, buttonShowPreview); 117 surfaceInVideo.getHolder().addCallback(this); 118 surfacePreview.getHolder().addCallback(previewHandler); 56 119 57 120 handler_ = handler; … … 74 137 handler_ = null; 75 138 } 76 77 private void updateVideoWindow( SurfaceHolder holder)78 { 139 140 private void updateVideoWindow(boolean show) 141 { 79 142 if (MainActivity.currentCall != null && 80 MainActivity.currentCall.vidWin != null) 143 MainActivity.currentCall.vidWin != null && 144 MainActivity.currentCall.vidPrev != null) 81 145 { 82 VideoWindowHandle vidWH = new VideoWindowHandle(); 83 if (holder == null) 146 SurfaceView surfaceInVideo = (SurfaceView) 147 findViewById(R.id.surfaceIncomingVideo); 148 149 VideoWindowHandle vidWH = new VideoWindowHandle(); 150 if (show) { 151 vidWH.getHandle().setWindow( 152 surfaceInVideo.getHolder().getSurface()); 153 } else { 84 154 vidWH.getHandle().setWindow(null); 85 else 86 vidWH.getHandle().setWindow(holder.getSurface()); 155 } 87 156 try { 88 157 MainActivity.currentCall.vidWin.setWindow(vidWH); 89 } catch (Exception e) {} 90 } 91 } 92 158 } catch (Exception e) { 159 System.out.println(e); 160 } 161 } 162 } 163 93 164 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) 94 165 { 95 updateVideoWindow( holder);166 updateVideoWindow(true); 96 167 } 97 168 … … 102 173 public void surfaceDestroyed(SurfaceHolder holder) 103 174 { 104 updateVideoWindow( null);175 updateVideoWindow(false); 105 176 } 106 177 … … 133 204 } 134 205 } 206 207 public void setupVideoPreview(SurfaceView surfacePreview, 208 Button buttonShowPreview) 209 { 210 surfacePreview.setVisibility(previewHandler.videoPreviewActive? 211 View.VISIBLE:View.GONE); 212 213 buttonShowPreview.setText(previewHandler.videoPreviewActive? 214 getString(R.string.hide_preview): 215 getString(R.string.show_preview)); 216 } 217 218 public void showPreview(View view) 219 { 220 SurfaceView surfacePreview = (SurfaceView) 221 findViewById(R.id.surfacePreviewCapture); 222 223 Button buttonShowPreview = (Button) 224 findViewById(R.id.buttonShowPreview); 225 226 227 previewHandler.videoPreviewActive = !previewHandler.videoPreviewActive; 228 229 setupVideoPreview(surfacePreview, buttonShowPreview); 230 231 previewHandler.updateVideoPreview(surfacePreview.getHolder()); 232 } 135 233 136 234 private void setupVideoSurface() 137 235 { 138 SurfaceView surface View= (SurfaceView)236 SurfaceView surfaceInVideo = (SurfaceView) 139 237 findViewById(R.id.surfaceIncomingVideo); 140 surfaceView.setVisibility(View.VISIBLE); 141 updateVideoWindow(surfaceView.getHolder()); 238 SurfaceView surfacePreview = (SurfaceView) 239 findViewById(R.id.surfacePreviewCapture); 240 Button buttonShowPreview = (Button) 241 findViewById(R.id.buttonShowPreview); 242 surfaceInVideo.setVisibility(View.VISIBLE); 243 buttonShowPreview.setVisibility(View.VISIBLE); 244 surfacePreview.setVisibility(View.GONE); 142 245 } 143 246
Note: See TracChangeset
for help on using the changeset viewer.