Боюсь, нет способа сделать это. Изображение видоискателя недоступно для вас, кроме как через getSnapshot()
, что, как вы сказали, не является мгновенным из-за кодировки и разрешений.
Тот факт, что видоискатель подается непосредственно на дисплей устройства, означает, что его можно реализовать в исходном виде гораздо быстрее, чем передавать закодированные байты в Java.
Если вам конкретно требуется уменьшенное изображение, вам нужно будет вручную изменить размер изображения, возвращаемого функцией getSnapshot ().