2017-04-26 200 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

一些流的是我的應用程序的成功非常重要。

我沒有對服務器的訪問。

這裏就什麼logcat中說:

04-26 21:09:20.189 27953-27953/com.eneasgesing.radios.rs E /事件記錄:playerFailed [987.08] com.google.android。 exoplayer2.ExoPlaybackException 在com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:345) 在android.os.Handler.dispatchMessage(Handler.java:98) 在android.os.Looper.loop(活套.java:154) at 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, Mp3Extractor,AdtsExtractor,Ac3Extractor,TsExtractor,FlvExtractor,OggExtractor,PsExtractor,WavExtractor)可以讀取流。 在com.google.android.exoplayer2.source.ExtractorMediaPeriod $ ExtractorHolder.selectExtractor(ExtractorMediaPeriod.java:713) 在com.google.android.exoplayer2.source.ExtractorMediaPeriod $ ExtractingLoadable.load(ExtractorMediaPeriod.java:636) 在在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)上的com.google.android.exoplayer2.upstream.Loader $ LoadTask.run(Loader.java:295) Worker.run(ThreadPoolExecutor.java:607) 在java.lang.Thread.run(Thread.java:761)

回答

0

這可能有助於看到一些你使用啓動exoplayer的代碼,我假設你正在使用標準ExtractorMediaSource

.m3u8文件實際上是播放列表,文本文件,鏈接至媒體文件 - 通常用於直播。你需要另一個MediaSource,嘗試HLS,或HlsMediaSource代替ExtractorMediaSource

HLS代表HTTP實時流。