Android의 비디오 플레이어 "ExoPlayer"와 교제하는 방법

4704 단어 ExoplayerAndroid

이른바 ExoPlayer


안드로이드 비디오 재생을 위한 프로그램 라이브러리, Google에서 제공하는 오픈 소스입니다.
공식 문서는 여기.에 있습니다.
또 GoogleIO 2016에도 회화가 있는데 애니메이션을 보고 싶으면 저쪽이 좋아요.기본적인 사용법과 사용의 장점 등을 설명했다.
실제로 사용하고 싶은 사람은 공식 문서를 읽고 이동demore Pri해 코드를 참고하면서 만들면 된다.
이 글은 동영상 애플리케이션을 만들기 위해 약 1년 반 동안 이 엑소플레이어와 지속해서 교제해 온 안드로이드 엔지니어 엑소플레이어와 교제하는 방법을 소개하고 싶다.

사용 방법 정보


반수도 많고 실제 애니메이션이 재생되기 전에 코드를 써야 하는데 프레젠테이션 소프트웨어와 공식 문서가 충실하기 때문에 이해하기 쉽다.
이 가운데 특별히 이해해야 할 사항은 PlayerState이다.
이 상태를 받아들이기 위해반송 재생하고 싶은 애니메이션 포맷으로 실제 운행을 시도하기 때문에 이 상태가 어떻게 변화하는지 이해하는 것이 가장 중요하다.
이렇게 되면 prepare와 setPlayWhen Ready 등을 부르면 상태가 어떻게 변하는지, 어느 시기에 버퍼링이 시작되는지, 재생이 시작되는지 등을 이해할 수 있다.

SurfaceView or TextureView


어느 것을 사용해야 공식 문서FAQ에 쓰여 있습니까?
제가 만든 프로그램인minSdkVersion은 16이고 ViewPager에서 동영상을 재생해야 하기 때문에 TextureView를 사용했습니다.

호출의 다양성


DEMOA PriDemoPlayer 클래스를 보면 호출용 인터페이스가 많아요.
public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventListener,
    HlsSampleSource.EventListener, ExtractorSampleSource.EventListener,
    SingleSampleSource.EventListener, DefaultBandwidthMeter.EventListener,
    MediaCodecVideoTrackRenderer.EventListener, MediaCodecAudioTrackRenderer.EventListener,
    StreamingDrmSessionManager.EventListener, DashChunkSource.EventListener, TextRenderer,
    MetadataRenderer<List<Id3Frame>>, DebugTextViewHelper.Provider
어쨌든, 이거랑 잘 사귀어야 돼.
학급명을 보면 HLS와 MPEG-DASH 등 특정 어댑티브-스트리밍 상황에서만 사용할 수 있는 인터페이스가 몇 개 있다는 것을 알 수 있다.우선, 나는 특정한 상황에서만 필요한 물건을 분리하는 것이 좋다고 생각한다일반 설치만.
공통된 것 중에는streming의timed text와id3metag처럼 특정한 기능을 사용하지 않으면 필요한 것이 없다.
이렇게 특정 상황을 생략하면 응용 프로그램의 비즈니스 논리적 측면ExoPlayer.Listener만 처리할 수 있다면 재생, 정지 등 처리, 오류 처리 등에 대응할 수 있다.
이상에 착안하여 추천DemoPlayer는 ExoPlayer입니다.Listener만 구현하기 위한 Player 재설계.

버전 업그레이드


엑소플레이어는 ojw28혼자 하는 것 같아.입니다.
그럼에도 불구하고업그레이드 빈도가 높습니다..
나는 그가 계속 더 좋은 디자인을 모색하고 있다고 생각한다. 버전이 한 번씩 업그레이드되면 호출과 반의 구조기 등 외부 호출의 인터페이스가 파괴적인 변경을 할 것이라고 생각한다.
예를 들어 프레젠테이션 프로그램에서 HLS를 재생할 때 사용하는 HlsRendererBuilder 클래스의 설치는 버전의 업그레이드에 따라 변경된다.
호출된 반의 구조기의 매개 변수는 증가하거나 감소할 수 있습니다.
v1.5.7->v1.5.8 변경점의 HlsRenderBuilder 등에서 반의 구조기가 변경되었음을 알 수 있다.
이 변경과 원활한 교류를 위해 애니메이션 재생 부분과 응용 프로그램을 분리할 수 있는 자물쇠를 만드는 것을 강력히 추천합니다.
최근에 ExoPlayer용블로거으로 열었습니다.우리도 혼자 운용하는 것 같으니 앞으로의 변경은 이것을 따라가면 좋겠다.

총결산


이상 다 귀찮아요.빨리 애니메이션 틀고 싶다!다음 프로그램 라이브러리를 사용하십시오.
반복되는 엑소플레이어의 버전 업그레이드는 영업일(best forst) 1일 동안 대응한다.

좋은 웹페이지 즐겨찾기