在Android上使用Google Exoplayer播放HLS流时出错

时间:2014-08-28 08:32:57

标签: android video-streaming http-live-streaming googleio

Google Exoplayer(https://github.com/google/ExoPlayer)是否支持Http直播? Android通常支持它,但是当我尝试在Android上使用Exoplayer播放.m3u8 HLS流时,我只会收到错误(请参阅下面的日志)。我使用了Google IO(http://www.davekb.com/browse_programming_tips:android_minimal_exoplayer_use:txt

中的最小Exoplayer设置

我是否需要使用与MediaCodecVideoTrackRenderer和MediaCodecAudioTrackRenderer不同的TrackRenderers?如果是的话,哪一个?

Init 1.0.12
I/NuCachedSource2﹕ ERROR_END_OF_STREAM
D/WVMLogging﹕ Thu Aug 28 10:28:47 2014 (79a3a730):WVSession::SetError: status=1001,     desc=Invalid data format
E/WVMExtractorImpl﹕ WV_Setup returned status 1001 in WVMMediaSource::start

2 个答案:

答案 0 :(得分:2)

=============================================== ===================

编辑: dev-hls分支已被删除,我检查了主分支是否合适。

=============================================== ===================

您可以使用exoPlayer的dev-hls分支 它仍处于开发阶段,尚未合并其中的任何部分。 但是,对我来说似乎很有希望。

dev-hls branch:https://github.com/google/ExoPlayer/tree/dev-hls

答案 1 :(得分:0)

您可以在初始化之前使用以下代码播放.m3u8文件:-

Handler mHandler = new Handler();

String userAgent = Util.getUserAgent(context, "YOUR_APPLICATION_NAME");

DataSource.Factory dataSourceFactory = new DefaultHttpDataSourceFactory(
                userAgent, null,
                DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
                1800000,
                true);

HlsMediaSource mediaSource = new HlsMediaSource(Uri.parse(mediaUrl),dataSourceFactory, 1800000,mHandler, null);

if (mediaUrl != null) {
    videoPlayer.prepare(mediaSource);
    videoPlayer.setPlayWhenReady(true);
}