2013-10-21 10 views
3

Android_4.1 MediaCodec API를 사용하여 카메라에서 캡처 한 비디오 데이터를 인코딩 한 다음 비디오 데이터를 디코딩하고 TextureView에 비디오를 표시하고 싶습니다. 이제 모든 것이 정상이지만 TextureView는 디코딩 된 비디오를 올바른 oritentation으로 보여줄 수 없습니다. 이 두 그림을보십시오. TextureView에서 정확한 방향으로 비디오를 표시하는 방법

2.Figure2

1.Figure1

enter image description here

enter image description here

그림 1에서 TextureView는 않습니다 나누었다 orientation.This TextureView이 setRotation (90)라고 내가 원하는 보여줍니다 alwalys 작업이 아닙니다.이 TextureView를 "match_parent/fill_parent/full_screen"으로 설정하면 setRotation (90), 작동하지 않습니다. 여기

내 카메라의 매개 변수입니다 :

mCamera.setDisplayOrientation(90); 
    Parameters parameters = mCamera.getParameters(); 
    parameters.setPreviewFormat(ImageFormat.NV21); 
    parameters.setPreviewSize(640, 480); 
    mCamera.setParameters(parameters); 
    getSupportedCameraParams(); 

내가 TextureView의 폭을 설정하는 시도 = screenHeight와 높이 = screenWidth도 나는 (480, 640)parameters.setPreviewSize을 설정하는 시도 , 그러나 그들은 작동하지 않습니다.

내 질문은 입니다. 전체 화면 TextureView를 올바른 방향으로 표시하려면 어떻게해야합니까??

나는 영어가 능숙하지 않아, 당신이 나를 이해할 수 있기를 바랍니다.

도움이 될 것입니다. 감사합니다.

답변

1

setDisplayOrientation 후에이 줄을 추가하여 TextureView를 다시 렌더링해야합니다. 내가 자른 비디오를 보여 주려 할 때

mTextureView.requestLayout(); 
mTextureView.invalidate(); 

그것은 나에게 도움 및 디스플레이 방향이 변화 할 때 가끔 그것을 잘라하지 않았다.

+0

@metalurgus RelativeLayout은 자식을 클립하므로 FrameLayout/LinearLayout을 사용하고 TextView의 width = screenHeight & height = screenWidth & setRotation (90)을 설정하면 잘 작동합니다. 탱크 팁. –