작업하고있는 응용 프로그램에 대한 도움이 필요합니다. 응용 프로그램에는 오디오가 포함 된 비디오를 녹화하기위한 사용자 정의 카메라 인터페이스가 있어야하며 실시간으로 TextureView 캔버스에 일부 객체를 추가해야합니다. Old Camera API는 더 이상 사용되지 않으므로 Camera2 API를 사용하여 TextureView에서 실시간 미리보기를 렌더링해야합니다. 내 목표는 TextureView 캔버스 위에 몇 가지 개체를 그리는 것입니다. 일부 텍스트/jpg/gif 일 수 있지만 카메라 스트림은 백그라운드에서 렌더링되고 오버레이 캔버스 콘텐츠 및 카메라 피드로 비디오를 녹화 할 수 있습니다.TextureView에서 개체를 그리는 방법 카메라 스트림을 미리보고 개체와 함께 스트림을 기록 하시겠습니까?
투명 오버레이보기에서 사용자 지정 콘텐츠를 그릴 수는 있지만 사용자의보기 용도에 불과합니다. 나는 이것을 며칠 동안 연구하려고 노력했지만, 나는 나의 목적을 해결하는 올바른 접근법을 얻을 수 없다.
은 내가 openCamera() 메소드를 호출 한 후 다음 코드를 시도,하지만 난 그냥 사각형을 그려 볼 수 있지만 카메라 미리보기 :Canvas canvas = mTextureView.lockCanvas();
Paint myPaint = new Paint();
myPaint.setColor(Color.WHITE);
myPaint.setStrokeWidth(10);
canvas.drawRect(100, 100, 300, 300, myPaint);
mTextureView.unlockCanvasAndPost(canvas);
는 또한 사용자 정의 TextureView 클래스를 시도하고 (캔버스를 thevonDrawForeground를 오버라이드 (override) 캔버스) 메서드를 사용하지만 작동하지 않습니다.
TextureView 클래스의 onDraw() 메서드가 final이므로 카메라 피드를 스트리밍하는 것 외에는 아무 것도 할 수 없습니다.
/**
* Subclasses of TextureView cannot do their own rendering
* with the {@link Canvas} object.
*
* @param canvas The Canvas to which the View is rendered.
*/
@Override
protected final void onDraw(Canvas canvas) {
}
간단히 말해서, 사용자가 카메라 소포를 통해 비디오를 녹화 할 수 있기를 바랍니다.