2017-03-07 6 views
1

나는 원격 트랙을 재생하기 위해 ExoPlayer 2를 사용하고 있습니다. 기본적으로 플레이어는 트랙을 한 장씩로드합니다 (예 : 트랙이 재생되는 동안 약 20 초 후, 다른 20 초).ExoPlayer, 원격 오디오 파일의 더 큰 부분을로드하는 방법

트랙이 원격 서버에서로드되기 때문에 연결이 끊어지면 플레이어는 더 이상로드 할 수 없습니다. ExoPlayer에게 오디오 파일의 큰 부분 (전체 트랙도 동시에로드)을로드하는 방법이 있습니까?

나는 ExtractorMediaSource, DataSource.FactoryDefaultExtractorsFactory 주위를 보려고했지만 내 문제를 해결하는 데 도움이되지 않았습니다.

val audioSource = ExtractorMediaSource(
     Uri.parse(videoUrl), 
     mDataSourceFactory, // DataSource.Factory 
     mExtractor, // DefaultExtractorsFactory 
     null, 
     null 
) 

mExoPlayer.prepare(audioSource) 
mExoPlayer.playWhenReady = true 

은 (는 코 틀린이지만, 자바 프로그래머로도 이해할 것 같다) 나는 해결책을 발견했습니다

답변

6

. 나는 기타 관련 질문을 찾는 아니에요 때문에 나는 (사람이 미래에 필요합니다 희망) 내 질문에 답변 해 드리겠습니다 :

구성 할 권리 객체가 ExoPlayer 개체를 만들 때 ExoPlayerFactory에 전달 된 LoadControl입니다 :

val loadControl = DefaultLoadControl(
      DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE), 
      5 * 60 * 1000, // this is it! 
      10 * 60 * 1000, 
      DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS.toLong(), 
      DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS.toLong() 
) 
mExoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl) 

The doc 여기서 설명한다.

+0

매우 도움이됩니다. 감사. – akki