2017-02-18 8 views
0

Ive는 ExoPlayer가 최근 어떻게 작동 하는지를 이해하고 소스 코드를 연구하려고했습니다.Google의 ExoPlayer가 Android 저급 API MediaExtractor를 더 이상 사용하지 않는 이유는 무엇입니까?

인코딩/디코딩 부분에서 나는 TrackRenderer가 MediaCodec 클래스에서 낮은 레벨의 API를 래핑하고 데이터를 디코딩/인코딩하는데 사용함을 발견했습니다.

그러나 Extracting 부분에 대해서만 저수준 api MediaExtractor를 사용하는 하나의 클래스 -> FrameWorkSampleSource.java와 ExoPlayer 2.0에서 사라진 것이 더 이상 사용되지 않습니다.

exoplayer가 소스에서 데이터를 추출하는 데이 낮은 수준의 API를 사용하지 않는 이유가 있습니까? 나는이 ..... 안드로이드 장치에서 미디어 데이터를 추출 할 수있는 유일한 방법입니다 ExoPlayer는 자바로 작성된 사용자 정의 추출기를 사용

감사

답변

1

, this package를 참조 생각했다. 이유에 대해서는

:

몇 가지 이유가 있습니다

  • MediaExtractor 잘 ExoPlayer에 적합하지의 스레딩 모델을 사용가.
  • 우리가 원하는대로 버퍼링을 제어하지 않습니다.
  • MediaExtractor에서 추출기 구현 은 Android 버전에 따라 다릅니다.
  • MediaExtractor 아래의 추출기 에는 ExoPlayer 추출기에서 지원할 수있는 일부 기능이 없습니다.

https://github.com/google/ExoPlayer/issues/2580

를 참조하십시오