Example #1
0
 public static bool Setup(string gameId, string wnsAppId, QGameKit.CaptureType captureType, QGameKit.UserAccountDelegate accountDelegate, QGameKit.Environment env)
 {
     QGameKit.QGameKitObj = QGameKitAndroidBridge.Setup(gameId, wnsAppId, captureType, accountDelegate, env);
     if (null == QGameKit.QGameKitObj)
     {
         Debug.LogError("QGameKitObj init failed!");
         return(false);
     }
     QGameKit.UserAccount account = accountDelegate();
     QGameKit.UpdateUserAccount(account);
     QGameKit.liveStatus = QGameKit.LiveStatus.Prepared;
     return(true);
 }
Example #2
0
 public void EnterLiveHallInGame()
 {
     if (this.androidBridge == IntPtr.Zero)
     {
         UnityEngine.Debug.LogError("androidBridge is null, enter LiveHallInGame failed!");
         return;
     }
     jvalue[] args = AndroidJNIHelper.CreateJNIArgArray(new object[]
     {
         QGameKitAndroidBridge.getActivityContext()
     });
     AndroidJNI.CallVoidMethod(this.androidBridge, QGameKitAndroidBridge.enterLiveHallInGameMethodID, args);
 }
Example #3
0
    public static QGameKitAndroidBridge Setup(string gameId, string wnsId, QGameKit.CaptureType captureType, QGameKit.UserAccountDelegate accountDelegate, QGameKit.Environment environmentType)
    {
        if (QGameKitAndroidBridge.singletonInstance != null)
        {
            return(QGameKitAndroidBridge.singletonInstance);
        }
        QGameKitAndroidBridge.gameID              = gameId;
        QGameKitAndroidBridge.wnsID               = wnsId;
        QGameKitAndroidBridge.myCaptureType       = captureType;
        QGameKitAndroidBridge.userAccountDelegate = accountDelegate;
        QGameKitAndroidBridge.sdkEnvironmentType  = environmentType;
        GameObject gameObject = new GameObject("QGameKitAndroidBridge");

        UnityEngine.Object.DontDestroyOnLoad(gameObject);
        QGameKitAndroidBridge.singletonInstance = gameObject.AddComponent <QGameKitAndroidBridge>();
        QGameKitAndroidBridge.singletonInstance.initSDK();
        return(QGameKitAndroidBridge.singletonInstance);
    }
Example #4
0
 public LiveStatusChangedCallback(QGameKitAndroidBridge bridge, QGameKit.LiveStatusChangedDelegate mDelegate) : base("com/tencent/qgame/live/listener/OnLiveStatusChangedListener")
 {
     this.liveStatusChangedDelegate = mDelegate;
     this.mBridge = bridge;
 }
Example #5
0
    private void initSDK()
    {
        IntPtr intPtr = AndroidJNI.FindClass("com/tencent/qgame/livesdk/bridge/Unity3D");

        QGameKitAndroidBridge.constructorMethodID = AndroidJNI.GetMethodID(intPtr, "<init>", "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIII)V");
        if (QGameKitAndroidBridge.constructorMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find UnityBridge constructor.");
            return;
        }
        QGameKitAndroidBridge.setupMethodID = AndroidJNI.GetMethodID(intPtr, "setup", "(Lcom/tencent/qgame/livesdk/bridge/UserAccountListener;)Z");
        if (QGameKitAndroidBridge.setupMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setup() method.");
            return;
        }
        QGameKitAndroidBridge.tearDownMethodID = AndroidJNI.GetMethodID(intPtr, "tearDown", "()V");
        if (QGameKitAndroidBridge.tearDownMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find tearDown() method.");
            return;
        }
        QGameKitAndroidBridge.resetMethodID = AndroidJNI.GetMethodID(intPtr, "reset", "()Z");
        if (QGameKitAndroidBridge.resetMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find reset() method.");
            return;
        }
        QGameKitAndroidBridge.startLiveBroadcastMethodID = AndroidJNI.GetMethodID(intPtr, "startLiveBroadcast", "(Ljava/lang/String;Ljava/lang/String;)Z");
        if (QGameKitAndroidBridge.startLiveBroadcastMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find startLiveBroadcast() method.");
            return;
        }
        QGameKitAndroidBridge.stopLiveBroadcastMethodID = AndroidJNI.GetMethodID(intPtr, "stopLiveBroadcast", "()Z");
        if (QGameKitAndroidBridge.stopLiveBroadcastMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find stopLiveBroadcast() method.");
            return;
        }
        QGameKitAndroidBridge.frameUpdatedMethodID = AndroidJNI.GetMethodID(intPtr, "frameUpdated", "()V");
        if (QGameKitAndroidBridge.frameUpdatedMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find frameUpdated() method.");
            return;
        }
        QGameKitAndroidBridge.enterLiveHallMethodID = AndroidJNI.GetMethodID(intPtr, "enterLiveHall", "(Landroid/content/Context;)V");
        if (QGameKitAndroidBridge.enterLiveHallMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find enterLiveHall() method.");
            return;
        }
        QGameKitAndroidBridge.enterLiveHallInGameMethodID = AndroidJNI.GetMethodID(intPtr, "enterLiveHallInGame", "(Landroid/content/Context;)V");
        if (QGameKitAndroidBridge.enterLiveHallInGameMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find enterLiveHallInGameMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.updateUserAccountMethodID = AndroidJNI.GetMethodID(intPtr, "updateUserAccount", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
        if (QGameKitAndroidBridge.updateUserAccountMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find updateUserAccount() method.");
            return;
        }
        QGameKitAndroidBridge.getLiveBroadcastStatusMethodID = AndroidJNI.GetMethodID(intPtr, "getLiveBroadcastStatus", "()I");
        if (QGameKitAndroidBridge.getLiveBroadcastStatusMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find getLiveBroadcastStatus() method.");
            return;
        }
        QGameKitAndroidBridge.getErrorCodeMethodID = AndroidJNI.GetMethodID(intPtr, "getErrorCode", "()I");
        if (QGameKitAndroidBridge.getErrorCodeMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find getErrorCode() method.");
            return;
        }
        QGameKitAndroidBridge.setUserAccountListenerMethodID = AndroidJNI.GetMethodID(intPtr, "setUserAccountListener", "(Lcom/tencent/qgame/livesdk/bridge/UserAccountListener;)V");
        if (QGameKitAndroidBridge.setUserAccountListenerMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setUserAccountListener() method.");
            return;
        }
        QGameKitAndroidBridge.setCommentReceiveDelegateMethodID = AndroidJNI.GetMethodID(intPtr, "setCommentReceiveListener", "(Lcom/tencent/qgame/livesdk/bridge/CommentReceiveListener;)V");
        if (QGameKitAndroidBridge.setCommentReceiveDelegateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setCommentReceiveListener() method.");
            return;
        }
        QGameKitAndroidBridge.setLogDelegateMethodID = AndroidJNI.GetMethodID(intPtr, "setLogListener", "(Lcom/tencent/qgame/livesdk/bridge/LogListener;)V");
        if (QGameKitAndroidBridge.setLogDelegateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setLogListener() method.");
            return;
        }
        QGameKitAndroidBridge.setLiveStatusChangedDelegateMethodID = AndroidJNI.GetMethodID(intPtr, "setLiveStatusChangedListener", "(Lcom/tencent/qgame/live/listener/OnLiveStatusChangedListener;)V");
        if (QGameKitAndroidBridge.setLiveStatusChangedDelegateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setLiveStatusChangedListener() method.");
            return;
        }
        QGameKitAndroidBridge.setShareListenerMethodID = AndroidJNI.GetMethodID(intPtr, "setShareListener", "(Lcom/tencent/qgame/livesdk/bridge/ShareListener;)V");
        if (QGameKitAndroidBridge.setShareListenerMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setShareListener() method.");
            return;
        }
        QGameKitAndroidBridge.setErrorCodeDelegateMethodID = AndroidJNI.GetMethodID(intPtr, "setErrorCodeListener", "(Lcom/tencent/qgame/live/listener/ErrorCodeListener;)V");
        if (QGameKitAndroidBridge.setErrorCodeDelegateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setErrorCodeDelegateMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.setWebViewStatusChangedDelegateMethodID = AndroidJNI.GetMethodID(intPtr, "setWebViewStatusChangedListener", "(Lcom/tencent/qgame/livesdk/bridge/WebViewStatusChangedListener;)V");
        if (QGameKitAndroidBridge.setWebViewStatusChangedDelegateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setWebViewStatusChangedListener() method.");
            return;
        }
        QGameKitAndroidBridge.isLiveBroadcastSupportedMethodID = AndroidJNI.GetMethodID(intPtr, "isLiveBroadcastSupported", "()Z");
        if (QGameKitAndroidBridge.isLiveBroadcastSupportedMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find isLiveBroadcastSupportedMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.getVersionNameMethodID = AndroidJNI.GetMethodID(intPtr, "getVersionName", "()Ljava/lang/String;");
        if (QGameKitAndroidBridge.getVersionNameMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find getVersionNameMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.showCameraMethodID = AndroidJNI.GetMethodID(intPtr, "showCamera", "()Z");
        if (QGameKitAndroidBridge.showCameraMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find showCameraMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.hideCameraMethodID = AndroidJNI.GetMethodID(intPtr, "hideCamera", "()V");
        if (QGameKitAndroidBridge.hideCameraMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find hideCameraMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.setEnvironmentTypeMethodID = AndroidJNI.GetMethodID(intPtr, "setEnvironmentType", "(I)V");
        if (QGameKitAndroidBridge.setEnvironmentTypeMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setEnvironmentTypeMethodID() method");
            return;
        }
        QGameKitAndroidBridge.getLiveFrameRateMethodID = AndroidJNI.GetMethodID(intPtr, "getLiveFrameRate", "()I");
        if (QGameKitAndroidBridge.getLiveFrameRateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find getLiveFrameRate() method");
            return;
        }
        QGameKitAndroidBridge.notifyUserAccountMethodID = AndroidJNI.GetMethodID(intPtr, "notifyUserAccountUpdate", "()V");
        if (QGameKitAndroidBridge.notifyUserAccountMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find notifyUserAccountMethodID() method.");
            return;
        }
        QGameKitAndroidBridge.doOnCreateMethodID = AndroidJNI.GetMethodID(intPtr, "doOnCreate", "()V");
        if (QGameKitAndroidBridge.doOnCreateMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find doOnCreate() method");
            return;
        }
        QGameKitAndroidBridge.doOnResumeMethodID = AndroidJNI.GetMethodID(intPtr, "doOnResume", "()V");
        if (QGameKitAndroidBridge.doOnResumeMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find doOnResume() method");
            return;
        }
        QGameKitAndroidBridge.doOnPauseMethodID = AndroidJNI.GetMethodID(intPtr, "doOnPause", "()V");
        if (QGameKitAndroidBridge.doOnPauseMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find doOnPause() method");
            return;
        }
        QGameKitAndroidBridge.doOnDestroyMethodID = AndroidJNI.GetMethodID(intPtr, "doOnDestroy", "()V");
        if (QGameKitAndroidBridge.doOnDestroyMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find doOnDestroy() method");
            return;
        }
        QGameKitAndroidBridge.doOnBackPressedMethodID = AndroidJNI.GetMethodID(intPtr, "doOnBackPressed", "()Z");
        if (QGameKitAndroidBridge.doOnBackPressedMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find doOnBackPressed() method");
            return;
        }
        QGameKitAndroidBridge.isSupportCameraMethodID = AndroidJNI.GetMethodID(intPtr, "isSupportCamera", "()Z");
        if (QGameKitAndroidBridge.isSupportCameraMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find isSupportCamera() method");
            return;
        }
        QGameKitAndroidBridge.shareLiveBroadcastMethodID = AndroidJNI.GetMethodID(intPtr, "shareLiveBroadcast", "()V");
        if (QGameKitAndroidBridge.shareLiveBroadcastMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find shareLiveBroadcast() method");
            return;
        }
        QGameKitAndroidBridge.isSupportLiveHallMethodID = AndroidJNI.GetMethodID(intPtr, "isSupportLiveHall", "()Z");
        if (QGameKitAndroidBridge.isSupportLiveHallMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find isSupportLiveHall() method");
            return;
        }
        QGameKitAndroidBridge.setDanmakuEnabledMethodID = AndroidJNI.GetMethodID(intPtr, "setDanmakuEnabled", "(Z)V");
        if (QGameKitAndroidBridge.setDanmakuEnabledMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find setDanmakuEnabled() method");
            return;
        }
        QGameKitAndroidBridge.showDanmakuMethodID = AndroidJNI.GetMethodID(intPtr, "showDanmaku", "()V");
        if (QGameKitAndroidBridge.showDanmakuMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find showDanmaku() method");
            return;
        }
        QGameKitAndroidBridge.hideDanmakuMethodID = AndroidJNI.GetMethodID(intPtr, "hideDanmaku", "()V");
        if (QGameKitAndroidBridge.hideDanmakuMethodID == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("Can't find hideDanmaku() method");
            return;
        }
        jvalue[] args = AndroidJNIHelper.CreateJNIArgArray(new object[]
        {
            QGameKitAndroidBridge.getActivityContext(),
            QGameKitAndroidBridge.gameID,
            QGameKitAndroidBridge.wnsID,
            Screen.width,
            Screen.height,
            Convert.ToInt32(QGameKitAndroidBridge.myCaptureType),
            Convert.ToInt32(QGameKitAndroidBridge.sdkEnvironmentType)
        });
        IntPtr intPtr2 = AndroidJNI.NewObject(intPtr, QGameKitAndroidBridge.constructorMethodID, args);

        if (intPtr2 == IntPtr.Zero)
        {
            UnityEngine.Debug.LogError("--- Can't create Unity bridge object.");
            return;
        }
        this.androidBridge = AndroidJNI.NewGlobalRef(intPtr2);
        AndroidJNI.DeleteLocalRef(intPtr2);
        AndroidJNI.DeleteLocalRef(intPtr);
        UnityEngine.Debug.Log("--- grabFrameRate = " + this.grabFrameRate);
        this.frameInterval = 1f / (float)this.grabFrameRate;
        UnityEngine.Debug.Log("--- 1.0f / grabFrameRate = " + this.frameInterval);
        this.startTime = Time.time;
        this.isRunning = false;
        if (QGameKitAndroidBridge.myCaptureType == (QGameKit.CaptureType) 0)
        {
            if (QGameKitAndroidBridge.userAccountDelegate != null)
            {
                this.SetUserAccountDelegate(QGameKitAndroidBridge.userAccountDelegate);
            }
            UnityEngine.Debug.Log("CaptureType is zero, give up setup");
            return;
        }
        if (this.setup())
        {
            UnityEngine.Debug.Log("Native setup success.");
        }
        else
        {
            UnityEngine.Debug.LogError("Native setup failed!");
        }
    }