Changeset 4997
- Timestamp:
- Mar 18, 2015 12:02:51 PM (8 years ago)
- Location:
- pjproject/trunk/pjsip-apps/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip-apps/src/pjsua/android/.classpath
r4496 r4997 2 2 <classpath> 3 3 <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> 4 <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>4 <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> 5 5 <classpathentry kind="src" path="src"/> 6 6 <classpathentry kind="src" path="gen"/> 7 <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> 7 8 <classpathentry kind="output" path="bin/classes"/> 8 9 </classpath> -
pjproject/trunk/pjsip-apps/src/swig/java/android/AndroidManifest.xml
r4928 r4997 10 10 11 11 <uses-permission android:name="android.permission.INTERNET" /> 12 <uses-permission android:name="android.permission.CAMERA" /> 12 13 <uses-permission android:name="android.permission.RECORD_AUDIO" /> 13 14 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> -
pjproject/trunk/pjsip-apps/src/swig/java/android/res/layout/activity_call.xml
r4704 r4997 39 39 android:text="Reject" /> 40 40 41 <SurfaceView 42 android:id="@+id/surfaceIncomingVideo" 43 android:layout_width="match_parent" 44 android:layout_height="match_parent" /> 45 41 46 </LinearLayout> -
pjproject/trunk/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java
r4840 r4997 22 22 import android.os.Handler; 23 23 import android.os.Message; 24 import android.view.SurfaceHolder; 25 import android.view.SurfaceView; 24 26 import android.view.View; 25 27 import android.widget.Button; … … 29 31 import org.pjsip.pjsua2.*; 30 32 31 public class CallActivity extends Activity implements Handler.Callback { 33 public class CallActivity extends Activity 34 implements Handler.Callback, SurfaceHolder.Callback 35 { 32 36 33 37 public static Handler handler_; … … 40 44 super.onCreate(savedInstanceState); 41 45 setContentView(R.layout.activity_call); 46 47 SurfaceView surfaceView = (SurfaceView)findViewById(R.id.surfaceIncomingVideo); 48 if (MainActivity.currentCall == null || 49 MainActivity.currentCall.vidWin == null) 50 { 51 surfaceView.setVisibility(View.GONE); 52 } 53 surfaceView.getHolder().addCallback(this); 42 54 43 55 handler_ = handler; … … 59 71 handler_ = null; 60 72 } 61 73 74 private void updateVideoWindow(SurfaceHolder holder) { 75 if (MainActivity.currentCall != null && 76 MainActivity.currentCall.vidWin != null) 77 { 78 VideoWindowHandle vidWH = new VideoWindowHandle(); 79 if (holder == null) 80 vidWH.getHandle().setWindow(null); 81 else 82 vidWH.getHandle().setWindow(pjsua2.android_opengl_get_surface(holder.getSurface())); 83 try { 84 MainActivity.currentCall.vidWin.setWindow(vidWH); 85 } catch (Exception e) {} 86 } 87 } 88 89 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 90 updateVideoWindow(holder); 91 } 92 93 public void surfaceCreated(SurfaceHolder holder) { 94 } 95 96 public void surfaceDestroyed(SurfaceHolder holder) { 97 updateVideoWindow(null); 98 } 99 62 100 public void acceptCall(View view) { 63 101 CallOpParam prm = new CallOpParam(); … … 87 125 } 88 126 127 private void setupVideoSurface() { 128 129 SurfaceView surfaceView = (SurfaceView)findViewById(R.id.surfaceIncomingVideo); 130 surfaceView.setVisibility(View.VISIBLE); 131 updateVideoWindow(surfaceView.getHolder()); 132 133 } 134 89 135 @Override 90 136 public boolean handleMessage(Message m) { … … 95 141 updateCallState(lastCallInfo); 96 142 143 } else if (m.what == MainActivity.MSG_TYPE.CALL_MEDIA_STATE) { 144 145 if (MainActivity.currentCall.vidWin != null) { 146 /* If there's incoming video, display it. */ 147 setupVideoSurface(); 148 } 149 97 150 } else { 98 151 -
pjproject/trunk/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MainActivity.java
r4870 r4997 62 62 public final static int REG_STATE = 3; 63 63 public final static int BUDDY_STATE = 4; 64 public final static int CALL_MEDIA_STATE = 5; 64 65 } 65 66 … … 171 172 if (CallActivity.handler_ != null) { 172 173 Message m2 = Message.obtain(CallActivity.handler_, MSG_TYPE.CALL_STATE, ci); 174 m2.sendToTarget(); 175 } 176 177 } else if (m.what == MSG_TYPE.CALL_MEDIA_STATE) { 178 179 /* Forward the message to CallActivity */ 180 if (CallActivity.handler_ != null) { 181 Message m2 = Message.obtain(CallActivity.handler_, MSG_TYPE.CALL_MEDIA_STATE, null); 173 182 m2.sendToTarget(); 174 183 } … … 333 342 334 343 MyCall call = new MyCall(account, -1); 335 CallOpParam prm = new CallOpParam(); 336 CallSetting opt = prm.getOpt(); 337 opt.setAudioCount(1); 338 opt.setVideoCount(0); 344 CallOpParam prm = new CallOpParam(true); 339 345 340 346 try { … … 503 509 } 504 510 511 public void notifyCallMediaState(MyCall call) { 512 Message m = Message.obtain(handler, MSG_TYPE.CALL_MEDIA_STATE, null); 513 m.sendToTarget(); 514 } 515 505 516 public void notifyBuddyState(MyBuddy buddy) { 506 517 Message m = Message.obtain(handler, MSG_TYPE.BUDDY_STATE, buddy); -
pjproject/trunk/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
r4870 r4997 29 29 abstract void notifyIncomingCall(MyCall call); 30 30 abstract void notifyCallState(MyCall call); 31 abstract void notifyCallMediaState(MyCall call); 31 32 abstract void notifyBuddyState(MyBuddy buddy); 32 33 } … … 42 43 43 44 class MyCall extends Call { 45 public VideoWindow vidWin; 46 44 47 MyCall(MyAccount acc, int call_id) { 45 48 super(acc, call_id); 49 vidWin = null; 46 50 } 47 51 … … 87 91 continue; 88 92 } 89 } 90 } 93 } else if (cmi.getType() == pjmedia_type.PJMEDIA_TYPE_VIDEO && 94 cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_ACTIVE && 95 cmi.getVideoIncomingWindowId() != pjsua2.INVALID_ID) 96 { 97 vidWin = cmi.getVideoWindow(); 98 } 99 } 100 101 MyApp.observer.notifyCallMediaState(this); 91 102 } 92 103 } -
pjproject/trunk/pjsip-apps/src/swig/java/sample.java
r4767 r4997 45 45 46 46 @Override 47 public void notifyCallMediaState(MyCall call) { 48 } 49 47 50 public void notifyCallState(MyCall call) { 48 51 if (currentCall == null || call.getId() != currentCall.getId())
Note: See TracChangeset
for help on using the changeset viewer.