1. ホーム
  2. android

[解決済み] Android: エミュレータでウェブカメラを使うには?

2023-01-11 15:37:32

質問

AVD マネージャーでフロント カメラを "webcam0" に設定して、ウェブカメラをエミュレーターに接続しています。 エミュレーターのカメラ アプリケーションを起動すると、次のようなエラーが表示されます。

CameraService::connect X (pid 702) rejected (invalid cameraId 0).

以下は、Androidのソースコードの該当部分です。

sp<ICamera> CameraService::connect(
    const sp<ICameraClient>& cameraClient, int cameraId) {

    int callingPid = getCallingPid();

    [...]

    if (cameraId < 0 || cameraId >= mNumberOfCameras) {
        LOGE("CameraService::connect X (pid %d) rejected (invalid cameraId %d).",
            callingPid, cameraId);
        return NULL;
    }

    [...]
}

Webカメラは1台しかないため、IDは正しく0が割り当てられています。しかし mNumberOfCameras これは、エミュレータによってカメラは登録されているが、接続されているカメラの数をわざわざ更新していないことを意味します。

エミュレーターに正しく認識されるようにするには、どのように Web カメラを接続すればよいのでしょうか。

Web

編集: コマンド emulator -webcam-list -avd <name of your AVD>\android-sdks\tools は結果を与えます。

List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`

EclipseのAVDマネージャからWebカメラを起動するとき、または emulator -camera-front webcam0 -avd <name of your AVD> を使用して起動すると、次のようなウィンドウが表示されます。

編集2:これはエミュレータのバグのようです。提案された回答は、カメラをセットアップするために何をすべきかを教えてくれますが、私の場合は問題を解決してくれませんでした。 私は最終的に、Web カメラを内蔵したノート PC を使用することで問題を解決しました。 おそらく、別の USB Web カメラも同様に機能したかもしれません。

どのように解決しましたか?

最新情報

Android Studio AVDで。

  1. AVD マネージャーを開きます。

  1. AVD を追加/編集します。

  1. 画面下部の[詳細設定]をクリックします。

  1. フロントカメラ/バックカメラにお好みのカメラを設定します。