I can reproduce your problem. The cameraView.NumCamerasDetected
will always be 0 when you enter it second. So you can use the cameraView.CamerasLoaded
to get the camera.
cameraView.BarcodeDetected += Camera_OnDetected; // Inicializar ZXing Barcode Decoder cameraView.BarCodeDecoder = new ZXingBarcodeDecoder(); cameraView.CamerasLoaded += (s, e) => { if (cameraView.Cameras.Count > 0) { //if (cameraView.NumMicrophonesDetected > 0) // the cameraView.NumMicrophonesDetected is still 0 here cameraView.Camera = cameraView.Cameras.FirstOrDefault(); MainThread.BeginInvokeOnMainThread(async () => { if (await cameraView.StartCameraAsync() == CameraResult.Success) { // playing = true; } }); } };