【发布时间】:2017-11-29 06:02:52
【问题描述】:
最近我遇到了 google exoplayer,它有一些很酷的功能,缺乏文档和支持,而且是新手,我的疑问是如何使用服务器 URL 播放 mp4 视频。现在让我解释一下我到目前为止所做的尝试
- 我已在我的项目中成功实现 exoplayer 并使其正常运行
-
但我的问题是首先使用我的服务器 url 它完成完整的视频缓冲区然后才开始播放所以需要时间?我需要的是在获得每个响应后需要同时播放,以便视频可以快速播放,我该如何实现这一点。现在让我发布到目前为止我尝试过的内容:
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 播放这样的缓冲区,而不是像缓冲区那样完全播放的缓冲区,提前谢谢
【问题讨论】:
-
尝试用 DefaultDataSourceFactory 替换 CacheDataSourceFactory
-
还是不行
-
你是如何在 exoplayer 中播放 mp4 链接的?
标签: android video-streaming exoplayer