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
答案 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);
}