.NET MAUI - standardmäßig die Rückfahrkamera (MediaPicker / Camera.Maui / Zxing / OCR) erzwingen
Posted: 19 Aug 2025, 22:06
Ich erstelle eine plattformübergreifende .NET MAUI-App, mit der die Kamera ein Foto aufnimmt und OCR ausführt (über Amazon Rekognition oder Plugin.Maui.ocr). Unabhängig von der Plattform (Android oder iOS) öffnet jede API, die ich versucht habe, immer die Vorder- /Selfie -Kamera, obwohl ich die Rückfahrkamera standardmäßig möchte.
[*] camera.maui mit camera = "rücken"
[*] zxing.net.maui Mit Cameralocation.rear
ulin.con.cr/ul. /> Bei allen öffnet die Frontkamera standardmäßig und es gibt keine offensichtliche Einstellung oder Überschreibung, um die Rückfahrkamera auszuwählen. Sogar das Einstellen der Kameraeinstellungen (z. B. Cameradevice = Heck ) hat keinen Einfluss - insbesondere auf Android. (d. H. Es wird immer die System -Benutzeroberfläche verwendet) oder gibt es eine Problemumgehung/API, mit der die Auswahl der Rückkamera ausgewählt wird?
Code: Select all
MediaPicker.Default.CapturePhotoAsync()
[*] camera.maui mit camera = "rücken"
[*] zxing.net.maui Mit Cameralocation.rear
ulin.con.cr/ul. /> Bei allen öffnet die Frontkamera standardmäßig und es gibt keine offensichtliche Einstellung oder Überschreibung, um die Rückfahrkamera auszuwählen. Sogar das Einstellen der Kameraeinstellungen (z. B. Cameradevice = Heck ) hat keinen Einfluss - insbesondere auf Android.
Code: Select all
using System;
using System.IO;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Storage; // MediaPicker
using Plugin.Maui.OCR; // OcrPlugin
namespace RearCameraOCR;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnCaptureClicked(object sender, EventArgs e)
{
try
{
if (!MediaPicker.Default.IsCaptureSupported)
{
await DisplayAlert("Error", "Camera not supported.", "OK");
return;
}
// Always opens the front camera instead of rear
var photoFile = await MediaPicker.Default.CapturePhotoAsync();
if (photoFile == null)
return;
using var stream = await photoFile.OpenReadAsync();
using var ms = new MemoryStream();
await stream.CopyToAsync(ms);
var bytes = ms.ToArray();
photoImage.Source = ImageSource.FromStream(() => new MemoryStream(bytes));
var ocrResult = await OcrPlugin.Default.RecognizeTextAsync(bytes);
var text = ocrResult.AllText;
resultLabel.Text = string.IsNullOrWhiteSpace(text)
? "No text detected."
: text;
}
catch (Exception ex)
{
await DisplayAlert("Error", ex.Message, "OK");
}
}
}
< /code>
< /code>
[b]Question:[/b]
How can I force .NET MAUI (on Android and iOS) to always use the rear camera by default when capturing photos? Is this limitation inherent to MediaPicker