最近我遇到了谷歌exoplayer,它有一些很酷的文化和支持,并且是新手,我的疑问是如何使用服务器URL播放mp4视频。现在让我解释一下到目前为止我尝试过的事情
但我的问题是首先使用我的服务器网址完成完整的视频缓冲,然后才开始播放,这需要时间吗?我需要的是它需要在获得每个响应后同时播放,以便视频可以快速播放,我怎样才能实现这一点。现在让我发布我到目前为止所尝试的内容:
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
LoadControl loadControl = new DefaultLoadControl();
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
simpleExoPlayerView = new SimpleExoPlayerView(this);
simpleExoPlayerView = findViewById(R.id.player_view);
simpleExoPlayerView.setUseController(true);
simpleExoPlayerView.setVisibility(View.VISIBLE);
simpleExoPlayerView.requestFocus();
simpleExoPlayerView.setPlayer(player);
Log.d("url", intent.getStringExtra("videopath") + "?api_key=" + getResources().getString(R.string.dream_factory_api_key) + "&session_token=" + PreferenceUtils.getInstance(this).getStrData(PreferenceUtils.SESSION_TOKEN));
MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(intent.getStringExtra("videopath") + "?api_key=" + getResources().getString(R.string.fs) + "&session_token=" + PreferenceUtils.getInstance(this).getStrData(PreferenceUtils.SESSION_TOKEN)),
new CacheDataSourceFactory(this, 100 * 1024 * 1024, 5 * 1024 * 1024), new DefaultExtractorsFactory(), null, null);
player.prepare(mediaSource);
有任何帮助吗?我是以正确的方式做的吗?我需要的是它需要缓冲区像youtube播放和缓冲区不像缓冲区完全然后播放,谢谢inavan
答案 0 :(得分:1)
您应该使用DashMediaSource而不是ExtractorMediaSource。那是你想要的(在比赛时缓冲)。