Пример #1
0
    public void StopRec()
    {
        if (!isInitialized)
        {
            return;
        }

//		Debug.Log("Stop Rec try");

        if (isRecording)
        {
//			Debug.Log("Stop Rec -- Start Stop");
                        #if UNITY_ANDROID && !UNITY_EDITOR
            MergeAndroidBridge.StopRecording();
                        #endif
//			Debug.Log("Stop Rec -- Native Done");
                        #if UNITY_IOS && !UNITY_EDITOR
            vidCapManager.EndRecordingSession(iVidCapPro.VideoDisposition.Save_Video_To_Album, out recFrames);
                        #endif

            if (MergeCubeSDK.instance.viewMode == MergeCube.MergeCubeBase.ViewMode.FULLSCREEN)
            {
                Camera.main.targetTexture = null;
                fullscreenRecordingCamera.SetActive(false);
            }
            else
            {
                                #if UNITY_IOS
                Camera.main.targetTexture = MergeCubeSDK.instance.GetHeadsetTexture();
                                #endif
            }
//			Debug.Log("Stop Rec -- ViewSetDone");
                        #if UNITY_IOS
            MergeCubeSDK.instance.videoTexture.SetTexture("_Texture", MergeCubeSDK.instance.GetHeadsetTexture());
                        #endif
            recordingTexture = null;

            MergeCubeScreenRotateManager.instance.UnlockCurrentOrientation();
            Resources.UnloadUnusedAssets();
//			Debug.Log("Stop Rec -- Set Texture Done");

            if (!MergeCubeSDK.deviceIsTablet)
            {
                MergeCubeSDK.instance.AddMenuElement(MergeCubeSDK.instance.viewSwitchButton, 3);

                if (MergeCubeSDK.instance.viewMode == MergeCubeBase.ViewMode.HEADSET)
                {
                    MergeCubeSDK.instance.AddMenuElement(MergeCubeSDK.instance.headsetCompatabilityButton, 4);
                }
            }

//			Debug.Log("Stop Rec -- Done Set Recording False");

            isRecording = false;

                        #if UNITY_ANDROID && !UNITY_EDITOR
            HandleRecSaveComplete();
                        #endif
        }
    }
Пример #2
0
    public void StartRec(string outputName, Callback OnRecordingComplete)
    {
                #if UNITY_IOS && !UNITY_EDITOR
        if (MergeIOSBridge.CheckPhoto() != 1)
        {
            return;
        }
                #endif
                #if UNITY_ANDROID && !UNITY_EDITOR
        if (!MergeAndroidBridge.HasPermission(AndroidPermission.WRITE_EXTERNAL_STORAGE))
        {
            return;
        }
        if (!MergeAndroidBridge.HasPermission(AndroidPermission.RECORD_AUDIO))
        {
            return;
        }
                #endif
        if (!isInitialized)
        {
            return;
        }

        if (!isRecording)
        {
            StartCoroutine(StartRecAction(outputName, OnRecordingComplete));
        }
    }
Пример #3
0
 void OpenPhoneSetting()
 {
                 #if UNITY_IOS && !UNITY_EDITOR
     MergeIOSBridge.OpenSet();
                 #endif
                 #if UNITY_ANDROID && !UNITY_EDITOR
     MergeAndroidBridge.ReDirectToSettingsScreen();
                 #endif
                 #if UNITY_EDITOR
     proceed = true;
                 #endif
 }
Пример #4
0
 void Update()
 {
     if (Temp_CheckCamera)
     {
                         #if UNITY_IOS && !UNITY_EDITOR
         proceed = MergeIOSBridge.CheckCamera();
                         #endif
                         #if UNITY_ANDROID && !UNITY_EDITOR
         proceed = MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                         #endif
     }
 }
Пример #5
0
        public void InitVuforia()
        {
            bool shouldStart = true;

                        #if UNITY_IOS && !UNITY_EDITOR
            shouldStart = MergeIOSBridge.CheckCamera();
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            shouldStart = MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                        #endif
            if (shouldStart && !vuforiaInited)
            {
                vuforiaInited = true;
                VuforiaRuntime.Instance.InitVuforia();
                StartCoroutine(InitVuforiaCamera());
            }
        }
Пример #6
0
    IEnumerator StartRecAction(string outputName, Callback OnRecordingComplete)
    {
//		Debug.LogWarning ("Start Recording");
                #if UNITY_ANDROID && !UNITY_EDITOR
        userGrantDone   = false;
        userGrantResult = false;
        MergeAndroidBridge.StartRecording();
        yield return(new WaitUntil(() => userGrantDone));

        if (!userGrantResult)
        {
            yield break;
        }
                #endif

//		Debug.LogWarning ("Remove Buttons");
        MergeCubeSDK.instance.RemoveMenuElement(MergeCubeSDK.instance.viewSwitchButton);
        MergeCubeSDK.instance.RemoveMenuElement(MergeCubeSDK.instance.headsetCompatabilityButton);
//		Debug.LogWarning ("Remove Buttons Done");

        MergeCubeScreenRotateManager.instance.LockToCurrentOrientation();
        SetRecordingTexture();
//		Debug.LogWarning ("Set Texture Done");


                #if UNITY_IOS && !UNITY_EDITOR
//	Debug.LogWarning ("Start VidCap");
        vidCapManager.BeginRecordingSession(outputName, recordingTexture.width, recordingTexture.height, 30f, iVidCapPro.CaptureAudio.Audio, iVidCapPro.CaptureFramerateLock.Unlocked);
                #endif

        if (OnRecordingComplete != null)
        {
            OnRecordingSaveComplete = OnRecordingComplete;
        }

//		Debug.Log("Now recording");

        isRecording = true;

        HandleRecStartSetup();
//		Debug.LogWarning ("All Recording Start Action Done");
        yield return(null);
    }
Пример #7
0
    public void ToggleRecording()
    {
                #if SHOULD_USE_RECORDING_PLUGIN
        if (!isRecording)
        {
                        #if UNITY_IOS && !UNITY_EDITOR
            if (MergeIOSBridge.CheckPhoto() == 2)
            {
                MergeIOSBridge.RequestPhoto();
                return;
            }
            else if (MergeIOSBridge.CheckPhoto() != 1)
            {
                MergeIOSBridge.OpenPhotoSettings();
                return;
            }
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            if (!MergeAndroidBridge.HasPermission(AndroidPermission.WRITE_EXTERNAL_STORAGE))
            {
                MergeAndroidBridge.CheckPermissionAndReDirectToSettingsScreen(AndroidPermission.READ_EXTERNAL_STORAGE);
                return;
            }
            if (!MergeAndroidBridge.HasPermission(AndroidPermission.RECORD_AUDIO))
            {
                MergeAndroidBridge.CheckPermissionAndReDirectToSettingsScreen(AndroidPermission.RECORD_AUDIO);
                return;
            }
                        #endif

            StartRec(System.DateTime.Now.Day.ToString() + "_" + System.DateTime.Now.Month.ToString() + "_" +
                     System.DateTime.Now.Year.ToString() + "_" + System.DateTime.Now.Hour.ToString() + "_" + System.DateTime.Now.Minute.ToString(), HandleRecSaveComplete);
        }
        else
        {
//			Debug.LogWarning("Should Stop Recording.");

            StopRec();

//			Debug.LogWarning("Should Set Recording to False.");
        }
                #endif
    }
Пример #8
0
    public void ToggleRecording()
    {
                #if SHOULD_USE_RECORDING_PLUGIN
        if (isBusy)
        {
            return;
        }

        CancelInvoke("ResetBusyStatus");
        CancelInvoke("ToggleRecording");

        if (!isRecording)
        {
                        #if UNITY_IOS && !UNITY_EDITOR
            if (MergeIOSBridge.CheckPhoto() == 2)
            {
                MergeIOSBridge.RequestPhoto();
                return;
            }
            else if (MergeIOSBridge.CheckPhoto() != 1)
            {
                MergeIOSBridge.OpenPhotoSettings();
                return;
            }
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            if (!MergeAndroidBridge.HasPermission(AndroidPermission.WRITE_EXTERNAL_STORAGE))
            {
                MergeAndroidBridge.CheckPermissionAndReDirectToSettingsScreen(AndroidPermission.READ_EXTERNAL_STORAGE);
                return;
            }
            if (!MergeAndroidBridge.HasPermission(AndroidPermission.RECORD_AUDIO))
            {
                MergeAndroidBridge.CheckPermissionAndReDirectToSettingsScreen(AndroidPermission.RECORD_AUDIO);
                return;
            }
                        #endif

            StartRec(System.DateTime.Now.Day.ToString() + "_" + System.DateTime.Now.Month.ToString() + "_" +
                     System.DateTime.Now.Year.ToString() + "_" + System.DateTime.Now.Hour.ToString() + "_" + System.DateTime.Now.Minute.ToString(), null);

//			RecordingButton.gameObject.SetActive( false );
            timer.StartTimer();
            isBusy = true;

            Invoke("ResetBusyStatus", 3f);

            //Stop recording after 30 seconds if still running.
            Invoke("ToggleRecording", 30f);
        }
        else
        {
//			Debug.LogWarning("Should Stop Recording.");

//			RecordingButton.gameObject.SetActive( true );
            timer.StopTimer();
            isBusy = true;
            StopRec();

//			Debug.LogWarning("Should Set Recording to False.");
        }
                #endif
    }
Пример #9
0
        IEnumerator Processing()
        {
//			MergeUserAccount.instance.PermissionPause (true);

            proceed = false;
//			#if UNITY_IOS || UNITY_ANDROID
            if (cameraAccessPop)
            {
                bool isCameraPermit = false;
                                #if UNITY_IOS && !UNITY_EDITOR
                isCameraPermit = MergeIOSBridge.CheckCamera();
                                #endif
                                #if UNITY_ANDROID && !UNITY_EDITOR
                isCameraPermit = MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                                #endif
                if (!isCameraPermit)
                {
//					Debug.LogWarning( "Should Do First Cam" );
                    Page_CameraAccess.gameObject.SetActive(true);
                    Page_CameraAccess.doneButton += Btn_DoneAction;
                    yield return(new WaitUntil(() => proceed));

                    Page_CameraAccess.doneButton -= Btn_DoneAction;
                    proceed = false;
                                        #if UNITY_IOS && !UNITY_EDITOR
                    MergeIOSBridge.RequestCamera();
                    yield return(new WaitUntil(() => isPopPause));
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.CAMERA);
                    yield return(new WaitForSeconds(.1f));
                                        #endif
                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #else
                    yield return(new WaitForSeconds(.5f));
                                        #endif
                    PlayerPrefs.SetString("MCSDK_cameraAccessPop", "done");
                    Page_CameraAccess.gameObject.SetActive(false);
                }
            }
                        #if UNITY_IOS && !UNITY_EDITOR
            cameraDisabledPop = !MergeIOSBridge.CheckCamera();
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            cameraDisabledPop = !MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                        #endif
                        #if  !UNITY_EDITOR
            if (cameraDisabledPop)
            {
                Debug.LogWarning("Should Do Cam Disabled");
                Page_CameraDisabled.gameObject.SetActive(true);
                Page_CameraDisabled.doneButton += OpenPhoneSetting;
                Temp_CheckCamera = true;
                yield return(new WaitUntil(() => proceed));

                Temp_CheckCamera = false;
                Page_CameraDisabled.doneButton -= OpenPhoneSetting;
                proceed = false;
                yield return(null);

                Page_CameraDisabled.gameObject.SetActive(false);
            }
                        #endif

                        #if UNITY_IOS && !UNITY_EDITOR
            int photoState = MergeIOSBridge.CheckPhoto();
            if (photoState == 2)
            {
                photoAccessPop = true;
            }
            else
            {
                photoAccessPop = false;
            }
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            if (MergeAndroidBridge.WasDeniedOnce(AndroidPermission.READ_EXTERNAL_STORAGE))
            {
                photoAccessPop = false;
            }
            else
            {
                photoAccessPop = !MergeAndroidBridge.HasPermission(AndroidPermission.READ_EXTERNAL_STORAGE);
            }
                        #endif
            if (photoAccessPop)
            {
                skip    = false;
                proceed = false;
//				Debug.LogWarning( "Should Do Photo" );
                //pop Cam
                Page_PhotoAccess.gameObject.SetActive(true);
                Page_PhotoAccess.doneButton   += Btn_DoneAction;
                Page_PhotoAccess.actionButton += SkipAction;
                Invoke("EnablePhotoSkip", 3f);
                yield return(new WaitUntil(() => (proceed || skip)));

                CancelInvoke("EnablePhotoSkip");
                proceed = false;
                if (!skip)
                {
                                        #if UNITY_IOS && !UNITY_EDITOR
                    MergeIOSBridge.RequestPhoto();
                    yield return(new WaitUntil(() => isPopPause));
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.READ_EXTERNAL_STORAGE);
                    yield return(new WaitForSeconds(.1f));
                                        #endif

                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #else
                    yield return(new WaitForSeconds(.5f));
                                        #endif
                }
                if (!skip)
                {
                                        #if UNITY_IOS && !UNITY_EDITOR
                    //currently Do nothing since not recording Mic.
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.RECORD_AUDIO);
                    yield return(new WaitForSeconds(.1f));
                                        #endif

                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #endif
                }
                Page_PhotoAccess.doneButton   -= Btn_DoneAction;
                Page_PhotoAccess.actionButton -= SkipAction;
                PlayerPrefs.SetString("MCSDK_photoAccessPop", "done");
                Page_PhotoAccess.gameObject.SetActive(false);
            }
//			if ( MergeUserAccount.instance.conf.userSignInActive && ( Application.internetReachability != NetworkReachability.NotReachable ) )
//			{
//				if ( MergeUserAccount.instance.ShouldOpenSignInPage )
//				{
//					skip = false;
//					proceed = false;
//					if ( PlayerPrefs.GetString( "UserAccountActionBtn" ) != "" )
//					{
//						userAccountSkipBtn.SetActive( true );
//					}
//					Debug.LogWarning( "Should Do User Account" );
//					Page_UserAccount.gameObject.SetActive( true );
//					Page_UserAccount.doneButton += Btn_DoneAction;
//					Page_UserAccount.actionButton += SkipAction;
//					yield return new WaitUntil( () => ( proceed || skip ) );
//					proceed = false;
//					if ( !skip )
//					{
//						MergeUserAccount.instance.signInClose += Btn_DoneAction;
//						MergeUserAccount.instance.PopSignIn();
//						yield return new WaitUntil( () => proceed );
//						MergeUserAccount.instance.signInClose -= Btn_DoneAction;
//						yield return new WaitForSeconds( .25f );
//					}
//					Page_UserAccount.doneButton -= Btn_DoneAction;
//					Page_UserAccount.actionButton -= SkipAction;
//					Page_UserAccount.gameObject.SetActive( false );
//					PlayerPrefs.SetString( "UserAccountActionBtn", "done" );
//				}
//			}
//			#endif
//			Debug.LogWarning( "All If Done" );
//			MergeUserAccount.instance.PermissionPause( false );
            DoneProcess();
            PlayerPrefs.Save();
            MergeCubeSDK.instance.InitVuforia();

            yield return(null);
        }
Пример #10
0
        IEnumerator Processing()
        {
            proceed = false;
            if (cameraAccessPop)
            {
                bool isCameraPermit = false;
                                #if UNITY_IOS && !UNITY_EDITOR
                isCameraPermit = MergeIOSBridge.CheckCamera();
                                #endif
                                #if UNITY_ANDROID && !UNITY_EDITOR
                isCameraPermit = MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                                #endif
                if (!isCameraPermit)
                {
//					Debug.LogWarning ("Should Do First Cam");
                    Page_CameraAccess.gameObject.SetActive(true);
                    Page_CameraAccess.doneButton += Btn_DoneAction;
                    yield return(new WaitUntil(() => proceed));

                    Page_CameraAccess.doneButton -= Btn_DoneAction;
                    proceed = false;
                                        #if UNITY_IOS && !UNITY_EDITOR
                    MergeIOSBridge.RequestCamera();
                    yield return(new WaitUntil(() => isPopPause));
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.CAMERA);
                    yield return(new WaitForSeconds(.1f));
                                        #endif
                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #else
                    yield return(new WaitForSeconds(.5f));
                                        #endif

                    PlayerPrefs.SetString("MCSDK_cameraAccessPop", "done");
                    Page_CameraAccess.gameObject.SetActive(false);
                }
            }
                        #if UNITY_IOS && !UNITY_EDITOR
            cameraDisabledPop = !MergeIOSBridge.CheckCamera();
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            cameraDisabledPop = !MergeAndroidBridge.HasPermission(AndroidPermission.CAMERA);
                        #endif
                        #if  !UNITY_EDITOR
            if (cameraDisabledPop)
            {
//				Debug.LogWarning ("Should Do Cam Disabled");
                Page_CameraDisabled.gameObject.SetActive(true);
                Page_CameraDisabled.doneButton += OpenPhoneSetting;
                Temp_CheckCamera = true;
                yield return(new WaitUntil(() => proceed));

                Temp_CheckCamera = false;
                Page_CameraDisabled.doneButton -= OpenPhoneSetting;
                proceed = false;
                yield return(null);

                Page_CameraDisabled.gameObject.SetActive(false);
            }
                        #endif

                        #if UNITY_IOS && !UNITY_EDITOR
            int photoState = MergeIOSBridge.CheckPhoto();
            if (photoState == 2)
            {
                photoAccessPop = true;
            }
            else
            {
                photoAccessPop = false;
            }
                        #endif
                        #if UNITY_ANDROID && !UNITY_EDITOR
            if (MergeAndroidBridge.WasDeniedOnce(AndroidPermission.READ_EXTERNAL_STORAGE))
            {
                photoAccessPop = false;
            }
            else
            {
                photoAccessPop = !MergeAndroidBridge.HasPermission(AndroidPermission.READ_EXTERNAL_STORAGE);
            }
                        #endif
            if (photoAccessPop)
            {
                skip    = false;
                proceed = false;
//				Debug.LogWarning ("Should Do Photo");
                //pop Cam
                Page_PhotoAccess.gameObject.SetActive(true);
                Page_PhotoAccess.doneButton   += Btn_DoneAction;
                Page_PhotoAccess.actionButton += SkipAction;
                yield return(new WaitUntil(() => (proceed || skip)));

                proceed = false;
                if (!skip)
                {
                                        #if UNITY_IOS && !UNITY_EDITOR
                    MergeIOSBridge.RequestPhoto();
                    yield return(new WaitUntil(() => isPopPause));
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.READ_EXTERNAL_STORAGE);
                    yield return(new WaitForSeconds(.1f));
                                        #endif

                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #else
                    yield return(new WaitForSeconds(.5f));
                                        #endif
                }
                if (!skip)
                {
                                        #if UNITY_IOS && !UNITY_EDITOR
                    //currently Do nothing since not recording Mic.
                                        #endif
                                        #if UNITY_ANDROID && !UNITY_EDITOR
                    MergeAndroidBridge.RequestPremission(AndroidPermission.RECORD_AUDIO);
                    yield return(new WaitForSeconds(.1f));
                                        #endif

                                        #if !UNITY_EDITOR
                    yield return(new WaitUntil(() => !isPopPause));

                    yield return(new WaitForSeconds(.2f));
                                        #endif
                }
                Page_PhotoAccess.doneButton   -= Btn_DoneAction;
                Page_PhotoAccess.actionButton -= SkipAction;
                PlayerPrefs.SetString("MCSDK_photoAccessPop", "done");
                Page_PhotoAccess.gameObject.SetActive(false);
            }
//			Debug.LogWarning ("All If Done");

            DoneProcess();
            PlayerPrefs.Save();
            MergeCubeSDK.instance.InitVuforia();
            yield return(null);
        }