В моем приложении .NET MAUI у меня есть возможность открыть камеру с помощью mediaPicker.capturePhotoasync () . Камера отлично работает на других версиях Android, но на Android 15 она не открывается.
try
{
photo = await MediaPicker.CapturePhotoAsync();
if (photo != null)
{
var newFile = Path.Combine(FileSystem.CacheDirectory, photo.FileName);
using (var stream = await photo.OpenReadAsync())
using (var newStream = File.OpenWrite(newFile))
await stream.CopyToAsync(newStream);
profileImage.Source = newFile;
isPicture = true;
}
}
catch (Exception ex)
{
Console.WriteLine($"CapturePhotoAsync THREW: {ex.Message}");
}
< /code>
Я также попробовал подход ниже, но это также не работает на Android 15: < /p>
try
{
if (MediaPicker.Default.IsCaptureSupported)
{
FileResult photo = await MediaPicker.Default.CapturePhotoAsync();
if (photo != null)
{
picPath = photo.FullPath;
// Open the photo as a stream
using Stream sourceStream = await photo.OpenReadAsync();
// Load the image using SkiaSharp
using SKBitmap originalBitmap = SKBitmap.Decode(sourceStream);
// Define the desired width and height
int desiredWidth = 800; // change as needed
int desiredHeight = 600; // change as needed
// Resize the image
using SKBitmap resizedBitmap = originalBitmap.Resize(new SKImageInfo(desiredWidth, desiredHeight), SKFilterQuality.High);
// Encode the resized image to a byte array
using SKImage image = SKImage.FromBitmap(resizedBitmap);
using SKData encodedData = image.Encode(SKEncodedImageFormat.Jpeg, 75); // 75 is the quality, you can change it
byte[] resizedImageBytes = encodedData.ToArray();
// Save the resized image to local storage
string localFilePath = Path.Combine(FileSystem.CacheDirectory, photo.FileName);
File.WriteAllBytes(localFilePath, resizedImageBytes);
// Set the image source
profileImage.Source = localFilePath;
isPicture = true;
isCamera = true;
// Update other variables
imageByteContents = new ByteArrayContent(resizedImageBytes);
}
else
{
isPicture = true;
isCamera = true;
}
isGallery = false;
}
}
catch (Exception exception)
{
Console.WriteLine($"CapturePhotoAsync THREW: {exception}");
}
< /code>
Моя проблема заключается в том, что камера не открывается на Android 15, в то время как она отлично работает на других версиях Android. Пожалуйста, предложите решение. Теперь я могу открыть камеру в Android 15. < /P>
Но моя текущая проблема заключается в том, что после снимка фотография реверсирует.
Изображение I нажимало:
В моем приложении .NET MAUI у меня есть возможность открыть камеру с помощью mediaPicker.capturePhotoasync () . Камера отлично работает на других версиях Android, но на Android 15 она не открывается.[code]try { photo = await MediaPicker.CapturePhotoAsync(); if (photo != null) { var newFile = Path.Combine(FileSystem.CacheDirectory, photo.FileName); using (var stream = await photo.OpenReadAsync()) using (var newStream = File.OpenWrite(newFile)) await stream.CopyToAsync(newStream);
profileImage.Source = newFile; isPicture = true; } } catch (Exception ex) { Console.WriteLine($"CapturePhotoAsync THREW: {ex.Message}"); } < /code> Я также попробовал подход ниже, но это также не работает на Android 15: < /p> try { if (MediaPicker.Default.IsCaptureSupported) { FileResult photo = await MediaPicker.Default.CapturePhotoAsync();
if (photo != null) { picPath = photo.FullPath;
// Open the photo as a stream using Stream sourceStream = await photo.OpenReadAsync();
// Load the image using SkiaSharp using SKBitmap originalBitmap = SKBitmap.Decode(sourceStream);
// Define the desired width and height int desiredWidth = 800; // change as needed int desiredHeight = 600; // change as needed
// Resize the image using SKBitmap resizedBitmap = originalBitmap.Resize(new SKImageInfo(desiredWidth, desiredHeight), SKFilterQuality.High);
// Encode the resized image to a byte array using SKImage image = SKImage.FromBitmap(resizedBitmap); using SKData encodedData = image.Encode(SKEncodedImageFormat.Jpeg, 75); // 75 is the quality, you can change it byte[] resizedImageBytes = encodedData.ToArray();
// Save the resized image to local storage string localFilePath = Path.Combine(FileSystem.CacheDirectory, photo.FileName); File.WriteAllBytes(localFilePath, resizedImageBytes);
// Set the image source profileImage.Source = localFilePath; isPicture = true; isCamera = true;
// Update other variables imageByteContents = new ByteArrayContent(resizedImageBytes); } else { isPicture = true; isCamera = true; } isGallery = false; } } catch (Exception exception) { Console.WriteLine($"CapturePhotoAsync THREW: {exception}"); } < /code> Моя проблема заключается в том, что камера не открывается на Android 15, в то время как она отлично работает на других версиях Android. Пожалуйста, предложите решение. Теперь я могу открыть камеру в Android 15. < /P>
[/code] Но моя текущая проблема заключается в том, что после снимка фотография реверсирует. Изображение I нажимало:
В моем приложении .NET MAUI у меня есть возможность открыть камеру с помощью mediaPicker.capturePhotoasync () . Камера отлично работает на других версиях Android, но на Android 15 она не открывается. try
{
photo = await...
Существует несколько типов API-интерфейсов Camara, таких как замена SIM-карты, состояние устройства и т. д., но я не понимал, как использовать эти API. документация не очень полезна для меня. Поэтому, пожалуйста, если кто-нибудь может помочь мне...
Заставка не отображается в полноэкранном режиме в .NET Maui в Android 12 и более поздних версиях. Заставка, как обычно, содержит логотип и несколько строк текста внизу. Проблема в том, что изображения и текст выглядят очень маленькими и не...
Заставка не отображается в полноэкранном режиме в .NET Maui в Android 12 и более поздних версиях. Заставка, как обычно, содержит логотип и несколько строк текста внизу. Проблема в том, что изображения и текст выглядят очень маленькими и не...
Заставка не отображается в полноэкранном режиме в .NET Maui в Android 12 и более поздних версиях. Заставка, как обычно, содержит логотип и несколько строк текста внизу. Проблема в том, что изображения и текст выглядят очень маленькими и не...