#android #android-camera2 #surface #textureview
#Android #android-camera2 #Поверхность #textureview
Вопрос:
Я создал службу переднего плана с целью получения кадров из предварительного просмотра camera2 без отображения макета пользователю. Когда я создаю Textureview в макете и использую его, все работает нормально, и я могу получить кадры, вызвав getBitmap (int width, int height) TextureView. Я сохранил кадры, и я знаю, что это работает нормально. Вот мой код:
textureView = mainActivity.findViewById(R.id.texture_view);
surfaceTexture = textureView.getSurfaceTexture();
surface = new Surface(surfaceTexture);
Но мне нужно, чтобы мой код работал без макета. Я создал TextureView программно, но когда я запускаю его и сохраняю кадры, они пустые. Это код, который я запускаю, чтобы заставить его работать без макета:
textureView = new TextureView(context);
textureView.setSurfaceTexture(new SurfaceTexture(100));
surfaceTexture = textureView.getSurfaceTexture();
surface = new Surface(surfaceTexture);
К вашему сведению, я запускаю свой код в рабочем потоке. Я также пытался использовать прослушиватели этих объектов, но безуспешно. Кто-нибудь может указать мне правильное направление, пожалуйста?
Ответ №1:
Я не думаю, что вы можете избежать использования surface. Но, может быть, вам сойдет с рук динамическое раздувание его с высотой макета и шириной 0dp.