【问题标题】:How to stream mp4 video from server using ExoPlayer?如何使用 ExoPlayer 从服务器流式传输 mp4 视频?
【发布时间】:2017-11-29 06:02:52
【问题描述】:

最近我遇到了 google exoplayer,它有一些很酷的功能,缺乏文档和支持,而且是新手,我的疑问是如何使用服务器 URL 播放 mp4 视频。现在让我解释一下我到目前为止所做的尝试

  1. 我已在我的项目中成功实现 exoplayer 并使其正常运行
  2. 但我的问题是首先使用我的服务器 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


【解决方案1】:

您可能应该使用 DashMediaSource 而不是 ExtractorMediaSource。这正是您想要的(播放时缓冲)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2013-12-26
    • 1970-01-01
    • 2019-02-25
    • 2011-01-14
    • 2015-09-18
    • 1970-01-01
    相关资源
    最近更新 更多