Video streaming Exoplayer如何知道使用自定义视频视图播放哪个URL

Video streaming Exoplayer如何知道使用自定义视频视图播放哪个URL,video-streaming,exoplayer,exoplayer2.x,Video Streaming,Exoplayer,Exoplayer2.x,我正在开发一个在线视频播放器,我正在使用TextureView静音扩展TextureView实现TextureViewSurfaceTextRelistener自定义类作为自定义视频播放器 我的回复中有两个url(主url)和dash\u url。现在我想使用ExomediaPlayer,但我有以下问题 如何对要播放的URL进行分类 或者这是否将由球员自己在比赛中决定 或者我们需要使用一个URL播放器自动完成他的工作 4.或者是否可以将自定义视频表面视图和SimpleXoPlayer结合使用 如

我正在开发一个在线视频播放器,我正在使用
TextureView静音扩展TextureView实现TextureView
<代码>SurfaceTextRelistener自定义类作为自定义视频播放器

我的回复中有两个
url
(主url)和
dash\u url
。现在我想使用
ExomediaPlayer
,但我有以下问题

  • 如何对要播放的
    URL
    进行分类

  • 或者这是否将由球员自己在比赛中决定

  • 或者我们需要使用一个
    URL
    播放器自动完成他的工作

  • 4.或者是否可以将
    自定义视频表面视图
    SimpleXoPlayer
    结合使用

    如何实现
    自适应比特率流
    你管144p 220p 720p。。。etc
    根据网络状况?

    我已经尝试了GIT上提供的示例,但它们不是在玩
    dash\u url
    就是在玩
    source\u url

    Exoplayer的示例代码


    哪个URL应该由您播放。破折号还是简单的HTTP URL?玩家不会决定播放哪个URL。这是由你来发挥这些媒体的。这完全取决于最终结果。所以我再次询问需要播放哪个URL?你为什么在这里使用2个URL?@BawenderYandra我使用的“HTTP URL”应该像
    YouTube
    一样播放,根据网络条件
    144p 240p 720p….
    我应该如何实现这一点你真正需要的是DASH实现。DASH代表HTTP上的动态自适应流。您可以在线检查一些实现,exoplayer支持DASH mediatype。你也可以在网上找到一些很好的例子。这是exoplayer提供的主要功能,youtube使用此功能。检查以下链接:1.[link]()2.[link]()第二个链接也提供了详细的实现。希望这能帮助你快乐编码
      String videoURL = "http://blueappsoftware.in/layout_design_android_blog.mp4";
    
        SimpleExoPlayerView exoPlayerView = (SimpleExoPlayerView) findViewById(R.id.exo_player_view);
        try {
    
    
            BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
            TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
            SimpleExoPlayer exoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector);
    
            Uri videoURI = Uri.parse(videoURL);
    
            DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("exoplayer_video");
            ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
            MediaSource mediaSource = new ExtractorMediaSource(videoURI, dataSourceFactory, extractorsFactory, null, null);
    
            exoPlayerView.setPlayer(exoPlayer);
            exoPlayer.prepare(mediaSource);
            exoPlayer.setPlayWhenReady(true);
        } catch (Exception e) {
            Log.e("MainAcvtivity", " exoplayer error " + e.toString());
        }