@Override
 public void onReceive(Context context, Intent intent) {
   if (intent.getAction().equals(JNIService.JNI_BROADCAST_KICED_CROWD)) {
     GroupUserObject obj = intent.getParcelableExtra("group");
     if (obj == null) {
       V2Log.e(
           "GroupMemberActivity",
           "Received the broadcast to quit the crowd group , but crowd id is wroing... ");
       return;
     }
     if (obj.getmGroupId() == memberGroup.getmGId()) {
       finish();
     }
   } else if (intent.getAction().equals(JNIService.JNI_BROADCAST_GROUP_USER_REMOVED)) {
     updateMembersChange();
   } else if (intent.getAction().equals(JNIService.JNI_BROADCAST_GROUP_USER_ADDED)) {
     // GroupUserObject guo = (GroupUserObject)
     // intent.getExtras().get(
     // "obj");
     // if (guo == null)
     // return;
     //
     // if(crowd.getmGId() == guo.getmGroupId()){
     // User addUser =
     // GlobalHolder.getInstance().getUser(guo.getmUserId());
     // mMembers.add(addUser);
     // adapter.notifyDataSetChanged();
     // }
     updateMembersChange();
   }
 }
 public static synchronized VideoMixerRequest getInstance() {
   if (mVideoMixerRequest == null) {
     mVideoMixerRequest = new VideoMixerRequest();
     if (!mVideoMixerRequest.initialize(mVideoMixerRequest)) {
       V2Log.e(" VideoMixerRequest initialize failed");
     }
   }
   return mVideoMixerRequest;
 }
 private void OnDelVideoMixer(String sMediaId, long nDstUserId, String sDstDevId) {
   V2Log.d("OnDelVideoMixer-->" + sMediaId + "   " + nDstUserId + "   " + sDstDevId);
   for (WeakReference<VideoMixerRequestCallback> we : mCallbacks) {
     Object obj = we.get();
     if (obj != null) {
       VideoMixerRequestCallback cb = (VideoMixerRequestCallback) obj;
       cb.OnDelVideoMixerCallback(sMediaId, nDstUserId, sDstDevId);
     }
   }
 }
 private void OnDestroyVideoMixer(String sMediaId) {
   V2Log.d("OnDestroyVideoMixer-->" + sMediaId);
   for (WeakReference<VideoMixerRequestCallback> we : mCallbacks) {
     Object obj = we.get();
     if (obj != null) {
       VideoMixerRequestCallback cb = (VideoMixerRequestCallback) obj;
       cb.OnDestroyVideoMixerCallback(sMediaId);
     }
   }
 }
  private void OnCreateVideoMixer(String sMediaId, int layout, int width, int height) {
    V2Log.d(
        "OnCreateVideoMixer--> sMediaId :"
            + sMediaId
            + "   "
            + layout
            + "  "
            + width
            + "  "
            + height);

    for (WeakReference<VideoMixerRequestCallback> we : mCallbacks) {
      Object obj = we.get();
      if (obj != null) {
        VideoMixerRequestCallback cb = (VideoMixerRequestCallback) obj;
        cb.OnCreateVideoMixerCallback(sMediaId, layout, width, height);
      }
    }
  }