2017-04-26 22 views
0

인터넷 라디오 방송을 청취하기 위해 일부 Android 응용 프로그램을 개발했습니다.Exoplayer가 일부 오디오 스트림을 재생할 수 없습니다.

오디오 스트림의 경우 Vitamio 라이브러리를 사용하고있었습니다. 안타깝게도 더 이상 지원되지 않으며 Android 7과의 호환성 문제가 있습니다.

많은 노력 끝에 ExoPlayer 라이브러리로 이동하기로 결정했습니다. 나는 사용의 편리함과 지속적인 업데이트에 매우 만족했다. 또한 APK 크기를 세 번 줄였습니다.

불행히도 ExoPlayer 라이브러리는 일부 오디오 스트림을 재생할 수 없습니다. 나는 디버깅을 시도하고 URL을 호출하는 등을 변경했다. 실패했습니다.

내가 ExoPlayer 라이브러리를 재생할 수 없습니다 스트림의 예입니다,하지만 난 Vitamio으로 재현 할 수 :

http://42747t.lp.azioncdn.net:1935/2747t/a/mp4:access_options/rtmp-live/atl_poa.sdp/playlist.m3u8 http://192747t.lp.azioncdn.net/2747t/a/mp4:access_options/rtmp-live/gau_centro.sdp/playlist.m3u8

이러한 스트림의 일부는 내 응용 프로그램의 성공을 위해 매우 중요하다.

서버에 대한 액세스 권한이 없습니다. 로그 캣에 말씀을 여기에

:

04-26 21 : 09 : 20.189 27953-27953/com.eneasgesing.radios.rs E/EventLogger : playerFailed [987.08] com.google.android. exoplayer2.ExoPlaybackException at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage (ExoPlayerImplInternal.java:345) at android.os.Handler.dispatchMessage (Handler.java:98) at android.os.Looper.loop (Looper .java : 154) android.os.HandlerThread.run (HandlerThread.java:61) com.google.android.exoplayer2.util.PriorityHandlerThread.run (PriorityHandlerThread.java:40) 에 의해 발생 : com.google.android.exoplayer2.source.UnrecognizedInputFormatException : 사용 가능한 추출기 (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Ad3Extractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor)에서 스트림을 읽을 수 있습니다. com.google.android.exoplayer2.source.ExtractorMediaPeriod $ ExtractingLoadable.load에서 com.google.android.exoplayer2.source.ExtractorMediaPeriod $ ExtractorHolder.selectExtractor (ExtractorMediaPeriod.java:713) (ExtractorMediaPeriod.java:636) 에서 에서 com.google.android.exoplayer2.upstream.Loader $ LoadTask.run (Loader.java:295) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:607) at java.lang.Thread.run (Thread.java:761)

답변

0

그것은 당신이

ExtractorMediaSource 표준

.m3u8 파일이 실제로 미디어 파일에 링크 재생 목록, 텍스트 파일입니다 사용하는 가정합니다, 당신은 exoplayer을 시작하는 데 사용하는 코드의 일부를보고 도움이 될 수 있습니다 - 은 일반적으로 실시간 스트림입니다.당신은 다른 MediaSource 필요 HLS는 HTTP 라이브 스트리밍을 의미 대신 ExtractorMediaSource

HLS, 또는 HlsMediaSource을 시도 할 것이다.