GL_OES_EGL_image_external 확장자를 사용하여 OpenGL로 비디오를 재생하고 있습니다. 문제는 일부 장치에서 비디오 크기가 OpenGL의 최대 텍스처 크기를 초과한다는 것입니다. 이 문제를 어떻게 처리 할 수 있습니까? 즉석에서 프레임을 축소하거나 비디오 크기를 미리 줄여야합니까?Android에서 OpenGL을 사용하여 비디오를 재생할 때 최대 텍스처 크기를 초과했습니다.
1
A
답변
0
당신이 정말로는 OpenGL ES의 최대 텍스처 크기를 타격하는 경우에 당신은 몇 가지 할 수있는 (FWIW을 나는이에 대한 최대 2048x2048 최근의 장치를 믿고) :
당신은 당신의 MediaPlayer
에 setVideoScalingMode(VIDEO_SCALING_MODE_SCALE_TO_FIT)
을 설정할 수 있습니다. 비디오 해상도를 첨부 된 SurfaceTexture
/Surface
크기로 조정한다고 생각합니다.
네 개의 동영상을 재생하여 분리하여 렌더링 할 수도 있습니다. TEXTURE_EXTERNAL_OES
은 GL에서이 네 가지 텍스처를 별도로 렌더링합니다. 그러나 그것은 당신의 성적을 떨어 뜨릴 수 있습니다.
내가 오류 메시지와 코드의 일부 컨텍스트를 본다면 아마도 더 많은 정보를 제공 할 수 있습니다.
관련 문제
- 1. async.queue를 사용하여 최대 호출 스택 크기를 초과했습니다.
- 2. iOS : OpenGL을 사용하여 비디오를 그립니다.
- 3. Android에서 RTSP 스트리밍 비디오를 재생할 때 종횡비를 유지하는 방법은 무엇입니까?
- 4. OpenGL을 사용하여 델파이로 텍스처 렌더링하기
- 5. OpenGL을 사용하여 Android에서 고스트 처리하기
- 6. RangeError : 최대 호출 스택 크기를 초과했습니다.
- 7. android에서 비디오를 재생할 때 텍스트를 표시하는 방법은 무엇입니까?
- 8. jquery hide with delay를 사용하여 비디오를 재생할 때 비디오를 숨기려고합니다.
- 9. ASSERT : 비디오를 재생할 때 "m_surface"
- 10. Livecode에서 android에서 비디오를 재생할 때 전체 화면을 설정하는 방법은 무엇입니까?
- 11. OpenGL을 JOGL 텍스처 개요
- 12. OpenGL을 반복 텍스처 부분
- 13. Android에서 WebView를 사용하여 Youtube 비디오를 재생할 수 있습니까?
- 14. LWJGL (OpenGL을) 텍스처
- 15. 비디오 js 오류 : 최대 호출 스택 크기를 초과했습니다.
- 16. 최대 텍스처 크기를 결정하는 요소는 무엇입니까?
- 17. Android에서 OpenGL을 사용하여 버튼 만들기
- 18. android에서 OpenGL을 사용하여 이미지 표시
- 19. OpenGL을 사용하여 텍스처 매핑이 올바르게 작동하지 않습니다.
- 20. Android 앱에서 "이 비디오를 재생할 수 없습니다." Android에서 HTTP 라이브 스트림을 재생할 때
- 21. 최대 DLL 수를 초과했습니다.
- 22. webview에서 vimeo 비디오를 재생할 때 문제가 발생했습니다.
- 23. Android : 바이트 할당이 최대 힙 바이트 크기를 초과했습니다.
- 24. 최대 호출 스택을 초과했습니다.
- 25. 비디오를 재생할 때 응용 프로그램이 충돌 함
- 26. Android : 비디오를 재생할 수 없습니다.
- 27. iOS에서 OpenGL을 사용하여 비디오를 재생하는 방법은 무엇입니까?
- 28. Android에서 백그라운드로 재생할 비디오 설정하기
- 29. OpenGL을 사용한 여러 텍스처 매핑
- 30. OpenGL을 LWJGL 텍스처 렌더링 실패
실제로 기본 모드는 VIDEO_SCALING_MODE_SCALE_TO_FIT입니다. 또한 표면 텍스처를 렌더링하고 있으므로 setFixedSize() 메서드가 없습니다. 어떤 아이디어? – Florian
SurfaceTexture 크기를 설정하는 방법은 setDefaultBufferSize (int width, int height)를 사용하는 것입니다. mSurface = new SurfaceTexture (textureID); ... mCamera.setPreviewTexture (mSurface); (MediaPlayer 대신 카메라를 사용하고 있습니다.) – ashleysmithgpu
나는 이것을 시도 할 것입니다. . 문서에 따르면 setDefaultBufferSize는 카메라와 같은 이미지 작성자가 덮어 쓰므로 작동하는지 테스트해야합니다. 내가하는 일은 다음과 같다 : SurfaceTexture texture = new SurfaceTexture (mTextureId); 표면 서페이스 = 새 서페이스 (텍스처); mMediaPlayer.setSurface (surface); surface.release(); – Florian