MXPlayer 및 Moboplayer와 같은 미디어 플레이어 Android 앱은 MKV와 같은 지원되지 않는 파일 형식을 재생합니까?

StackOverflow https://stackoverflow.com//questions/9654714

  •  11-12-2019
  •  | 
  •  

문제

Android는 기본적으로 많은 미디어 파일 형식 (.mkv와 같은 파일)을 지원하지 않습니다.그러나 MXPlayer와 Moboplayer와 같은 플레이어는 이러한 파일을 재생할 수 있습니다.이러한 응용 프로그램은 어떻게 작동합니까? 어떻게 수행되는지 설명하는 프로그래밍 자습서 또는 기사가 있습니까?

도움이 되었습니까?

해결책

Android는 기본적으로 모든 미디어 형식을 지원하지 않습니다. 따라서 지원되지 않는 형식을 지원하기 위해 Moboplayer와 같은 응용 프로그램은 JNI를 통해 Java 및 기본 코드의 조합을 사용하여 표준 미디어 플레이어 작업을 수행합니다.

더 많은 것을 이해하려면 미디어 플레이어가 미디어 파일을 재생할 수 있는지, 이들이 Android의 앱과 같은 Moboplayer가 수행하는 방법을 확인해 보겠습니다.

Typical tasks of a Media Player

플레이어는 다음 작업 (a) 파일 형식을 수행하고 비디오 / 오디오 (B)를 추출하여 비디오를 디코딩하고 오디오 (C)가 비디오를 표시하고 오디오를 재생합니다. 플레이어와 같은 모바일 층의 경우이 세 가지 영역을 처리하는 방법을 고려해 보겠습니다.

File format Demux

Android는 기본적으로 모든 파일 형식 컨테이너를 지원하지 않습니다. 예를 들어 ASF (WMV 파일의 파일 형식)가 지원되지 않습니다. 따라서 플레이어는 작업을 수행하기 위해 자신의 Demuxer를 가질 필요가 있습니다. libavformat (ffmpeg에서 사용)은 선도적 인 오픈 소스 Demux 라이브러리입니다.

Video/Audio decode

libavcodec (ffmpeg에서 사용)은 Demuxed 스트림을 디코딩하고 압축되지 않은 원시 출력 프레임을 생성하는 선도적 인 오픈 소스 디코더 라이브러리입니다. 따라서 Moboplayer와 같은 플레이어가 자주 사용됩니다.

Video display

비디오를 표시하는 두 가지 옵션이 있습니다. 플레이어는 SurfaceView 버퍼 또는 OpenGL 가속 버퍼 중 하나를 사용합니다. Android는 General 코드가 액세스 할 수있는 Java Surface Object (기본 표면 플로어 오브젝트의 기본 표면 플로어 오브젝트)의 주조를 제공합니다.

ICS (Android 4.0) Onwords에서는 OpenGL 가속 버퍼 (NativeWindowSurfaceTexure)에 대한 액세스도 제공합니다. 이들은 비디오를 표시하는 데 사용할 수 있습니다.

TextureView

플레이어는 Java 레벨에서 제공되는 Audio playout 객체와 직접 상호 작용하여 디코딩 된 오디오 샘플을 재생할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top