Вот код для обновления всего компонента:
Код: Выделить всё
[RelayCommand]
public async Task My(object parameter)
{
if (parameter is Border border)
{
// var tempImagePath = Path.Combine(FileSystem.AppDataDirectory, $"temp_image2.png");
var tempImagePath = "/storage/7376-B000/SEXE 2/clavier/clavier.mkv";
var skImage = await GenerateThumbnailAsync(tempImagePath);
SKData? skData = skImage?.Encode(SKEncodedImageFormat.Png, quality: 80);
ThumbnailSKDatas.Add(skData);
var image = ImageSource.FromStream(() => skData.AsStream());
MainThread.BeginInvokeOnMainThread(async () =>
{
border.Content = new Image()
{
Source = image
};
await Task.Delay(1500);
});
}
}
Код: Выделить всё
private async Task GenerateThumbnailAsync(string file)
{
var bitmap = await GetThumbnailBitmapFromVideoFile(file);
return bitmap?.ToSKImage();
но это тоже не сработало
[*]Кажется, объект skData содержит действительные данные: если я сохраню его в файл PNG, я смогу его открыть в Android Studio (через проводник устройства) и просмотрите изображение.
[*]изображение видно, когда я запускаю приложение из Jetbrains Rider, в режим отладки. Но если я остановлю свое приложение, отключу Rider и USB-кабель и запущу приложение с планшета, нажатие кнопки, запускающей метод «Мой», больше не сделает изображение видимым, но skData все равно будет содержать действительные данные (потому что при сохранении создается правильное изображение).
[/list]
спасибо
PS: рецензенты: я знаю, что это смесь кодирования и Android. Вопрос, но предыдущий вопрос был отклонен энтузиастами Stack Overflow и Android, поэтому для этого я решил опубликовать сообщение в Stack Overflow. Мне нужно куда-то опубликовать.
Подробнее здесь: [url]https://stackoverflow.com/questions/79277754/imagesource-updating-in-image-component-empty-image-when-launched-from-table[/url]
Мобильная версия