0

私のドロイドフォンに付属のカメラアプリがそれを行うのでそれは可能であることを私は知っています、しかし私の人生の間、私はビデオまたは標準のカメラのどちらにもその場でカメラを切り替えることができないようです(それは私を導きます私が正しくやっていないのではないかと疑うために!)

現在、ボタンのイベントがあります

btnSwitchCamera.Click += new EventHandler(btnSwitchCamera_Click);

その前に、カメラの数を確認します。カメラが1つしかない場合、イベントは有効になりません。

スイッチコードは次のようになります

private void btnSwitchCamera_Click(object s, EventArgs e)
    {
        if (isBackCamera == false)
        {
            try
            {
                RunOnUiThread(delegate
                {
                    camera.Release();
                    camera = Android.Hardware.Camera.Open(1);
                });
            }
            catch (Java.Lang.RuntimeException)
            {
                alertMsg(context, Application.Context.Resources.GetString(Resource.String.videoErrorTitle),
                    Application.Context.Resources.GetString(Resource.String.videoFailToConnect));
                return;
            }
            isBackCamera = true;
        }
        else
        {
            try
            {
                RunOnUiThread(delegate
                {
                    camera.Release();
                    camera = Android.Hardware.Camera.Open(0);
                });
            }
            catch (Java.Lang.RuntimeException)
            {
                alertMsg(context, Application.Context.Resources.GetString(Resource.String.videoErrorTitle),
                    Application.Context.Resources.GetString(Resource.String.videoFailToConnect));
                return;
            }
            isBackCamera = false;
        }
    }

ボタンをクリックすると、サービスに接続できないと主張してアプリが停止します。

ビデオ録画コードは特別なものではありません。これは、表面を設定し、ホルダーを作成し、録画を開始/停止するというボグの標準です。

私はこれを正しくやっていますか?ドキュメントから、カメラを解放してから、適切なカメラ番号でカメラを開く必要があります(Android.Hardware.Camera.NumberOfCameras-1)

マニフェストが正しく設定されている。

ありがとう

ポール

4

0 に答える 0