Размытое отражение трансляции на фон

Рейтинг: 1Ответов: 0Опубликовано: 02.05.2023

Я делаю приложение, похожее на Rave. Суть его в совместном просмотре видео. Как и в оригинальном приложении, я бы хотел создать отражение трансляции на фон, как показано на картинке.

Я реализовал это так:

  1. Беру Bitmap с моего textureView, где показывается трансляция (60 кадров в секунду):
Bitmap frameBitmap = textureView.getBitmap();
  1. Делаю размытие Bitmap с помощью RenderScript Intrinsics Replacement Toolkit:
Bitmap blurredBitmap = Toolkit.INSTANCE.blur(frameBitmap, 25);
  1. Подгоняю размытый размер Bitmap под нужную мне ширину и высоту:
Bitmap croppedBitmap = Bitmap.createBitmap(width-top_W, height-top_H, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(croppedBitmap);
canvas.drawBitmap(frameBitmap, (int)(-croppedBitmap.getWidth()*1.5), -top_H, null);
  1. Устанавливаю на фон:
BG_View.setBackground(new BitmapDrawable(getResources(), croppedBitmap));

Всё круто, за исключением того, что фон отстаёт от трансляции на какие-то доли секунды. Я очень хочу реализовать моментальное отражение, но совсем не понимаю, как иначе это можно сделать. (Без размытия отражение так же отстаёт от трансляции).

Нынешний вид приложения

Ответы

Ответов пока нет.