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

2023-12-01

我正在开发一个在线视频播放器,我正在使用TextureVideoViewMute extends TextureView implements TextureView. SurfaceTextureListener自定义类作为自定义视频播放器。

我有两个URLs在我的回复中source_url(主要网址)和dash_url.现在我想用ExomediaPlayer为此,但我有以下问题。

  1. 如何分类URL被玩?

  2. 或者说这是否是由玩家在玩的时候自己决定的?

  3. 或者我们需要使用一个URL玩家自动完成他的工作?

4.或者是否可以组合custom video surface view and SimpleExoPlayer?

如何实现adaptive bitrate streaming like you-tube 144p 220p 720p... etc根据网络状况?

我已经尝试过提供的示例GIT但他们要么在玩dash_url or source_url

Exoplayer 示例

示例代码为Exoplayer

  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());
    }

您可以通过调用以下命令获取当前玩家源(uri):

player.currentMediaItem?.playbackProperties?.uri

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Exoplayer如何知道要使用自定义视频视图播放哪个URL 的相关文章

  • 在 flutter 应用程序中,目标 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一

    Please help me to sort out the problem I give a link to the git https github com Vasajj radio tysa fm git https github c
  • 如何在 Exoplayer 上显示 HLS 嵌入字幕

    如何使用 Exoplayer ExoMedia 或其他播放器启用并选择 HLS 格式的 Vimeo 视频中嵌入的不同字幕 在 iOS 中 同一个视频已经提供了原生字幕选项 但在 Android 中我找不到实现它的方法 我在这里的答案看起来很
  • 桌面应用程序.net中的视频通话

    我正在开发一个 wpf 应用程序 该应用程序应该具有视频通话功能 所以我寻求 Skype 为我提供解决方案 我正在使用 Skype4COM 库来做到这一点 我的应用程序中包含了 Skype 的所有朋友 我可以给朋友打电话 甚至可以进行视频通
  • 下载 iOS 时流式传输视频

    我使用的是 iOS 7 我有一个 mp4 视频需要在我的应用程序中下载 该视频很大 约 1 GB 这就是它不包含在应用程序中的原因 我希望用户能够在开始下载后立即开始观看视频 我还希望视频能够缓存在 iOS 设备上 这样用户以后就不需要再次
  • 如何在同一个 HTML5 播放器中放大视频并切换视频流?

    我的视频将分为 4 个视频 首先 播放器将传输较低分辨率的原始视频 然后用户可以放大视频以查看更多细节 我需要播放器根据用户放大的位置传输 4 个视频之一 分辨率较高 我如何使用 VideoJS 或任何其他视频播放器来实现这一点 经过一番查
  • Firefox 在收到指定内容范围的 206 后不会请求进一步的数据

    为了提供一些背景信息 我有一个
  • 视频不再在 Chrome 中使用 mediaelement.js 进行流式传输

    在过去的几天里 我们注意到我们的视频停止使用MediaElement js Version 2 11 3 and Chrome Version 50 0 2661 94 64 bit 视频仍然可以在 Firefox 和 Safari 中正常
  • 如何强制NetStream创建关键帧?

    我创建了一个视频流录制应用程序 除了录制的 FLV 有点损坏之外 该应用程序运行良好 如果我在 VLC 播放器中打开 FLV 一切都是绿色的 但当发生更改时会变得 干净 尤其是在视频的开头是分手 我用的是Red5 1 0 对于预先录制的流
  • 在 Kivy 中嵌入 YouTube 视频

    我想使用 YouTube URL 将视频嵌入到 Kivy 的小部件中 那可能吗 该文档给出了 VideoPlayer 的示例 http kivy org docs api kivy uix videoplayer html http kiv
  • ffmpeg:记录/捕获流并同时进行场景检测

    是否可以同时捕获 录制 RTSP 流and使用单个 ffmpeg 命令捕获场景变化事件 我几乎可以做我想做的事 ffmpeg i rtsp mystream map 0 v map 0 a c v copy c a copy f segme
  • 通过 Web API 2 流式传输视频内容

    我正在研究执行以下操作的最佳方法 我有一堆闭路电视录像文件 MP4 文件 大小从 4MB 50MB 不等 我想通过门户网站提供这些文件 我的第一个想法是通过 Web API 流式传输文件 所以我找到了下面的链接 http www strat
  • Amazon S3 托管流媒体视频 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如果我公开提供 Amazon s3 MP4 资源 然后在该资源的 URL 周围添加 Html5 视频标
  • 找到实际的 RTMP 流 URL?

    让我举个例子 这是视频嵌入代码 div Loading the player div
  • NetStream.appendBytes

    我有一个连接到 Flash Media Server 的 netConnection 我正在尝试使用 Flash Player 10 1 中的新appendBytes 函数将本地FLV 文件流式传输到FMS 但是我遇到了问题 我在网上获取的
  • 用于 AR 的 Android 视频流捕获

    我希望能够从 Android 手机摄像头捕获视频 然后处理该视频 处理涉及向直播流添加一层 AR 这在安卓上可行吗 很确定应该是这样 我查看了android网站 http developer android com guide topics
  • 在 Python 中将视频源从 Javascript 传递到 OpenCV

    我正在尝试创建一个网络应用程序来检测实时视频源中的面孔 我已经用 Javascript 编写了网络摄像头源代码 因为我想稍后托管该应用程序 使用 Javascript 获取 feed 的代码 var video document query
  • 在 Android 的 Exoplayer 中使用 flac 扩展

    我正在尝试使用 ExoPlayer 库FLAC 扩展 https github com google ExoPlayer tree release v2 extensions flac在我的安卓应用程序中 我面临以下问题 并非所有文件都可以
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 来自相机的 MediaCodec 视频流方向和颜色错误

    我正在尝试流式传输视频捕获直接从相机适用于 Android 设备 到目前为止 我已经能够从 Android 相机捕获每一帧预览帧 byte data Camera camera 函数 对数据进行编码 然后成功解码数据并显示到表面 我用的是安

随机推荐

  • .htaccess 重写 url 到页面或目录

    对于我的网站 我有一个指向 URL 的 RewriteRulehttp www mysite com work到 work php 文件 我还有一个名为 work 的目录 其中包含文件 例如project1 php project2 php
  • cuda 上的矢量步加法速度较慢

    我正在尝试在 CUDA C 代码上运行向量步加法函数 但对于大小为 5 000 000 的大型浮点数组 它的运行速度比我的 CPU 版本慢 下面是我所说的相关CUDA和cpu代码 define THREADS PER BLOCK 1024
  • 强制 iPhone 应用程序以编程方式重新启动?

    我试图让我的 iPhone 应用程序在按下 注销 按钮时以编程方式重新启动 有人有代码示例可以分享吗 我读到可以通过修改 main m 文件来实现 但我找不到与此相关的任何代码 任何帮助 将不胜感激 Note 尽管这已被回答为 不可能 但我
  • 在不同的 AppDomain 中加载具有依赖项的程序集

    我的目标是在两个给定文件夹之间进行缺失的依赖关系检查 想象一下以下设置 根目录 DirA A dll 根 DirB B dll B 取决于 A 因此 给定这些文件夹 我想创建一个新的 AppDomain 加载 B dll 并在该新 AppD
  • 正则表达式选项匹配多行并忽略大小写

    我有一些格式错误的 html 有时缺少 此外 它有时显示大写字母 有时显示小写字母 div class main div class subsection1 h2 div class subwithoutquote StackOverflo
  • 使用 printf() 流式传输 void 函数的输出

    我想存储函数的输出 matrix output printf 打印以下输出 矩阵 0 1 2 1 2 3 2 3 4 我想将此输出保存在文本文件中 在第一次尝试中 我修改了原来的matrix output fprintf 以便它连续使用存储
  • 写入文件时出现 UnicodeDecodeError

    我知道这是一个非常常见的错误 但这是我在尝试写入文件时第一次遇到它 我在用着networkx使用图形进行网络分析 当我尝试写入任何格式时 nx write gml G Graph gml nx write pajek G Graph net
  • 这个代码是什么? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 举个例子 这里有一行 returned Obfuscated 0D 03 1E 0B 1
  • EnterKey 有时在 IE8 中不起作用,使用 jQuery 的 keyPressed

    在我的 HTML 中 CSS edit field height 50px width 495px line height 3 6 html
  • Winforms 禁用文本框上的键盘输入但保持文本框启用

    场景是这样的 我需要禁用文本框以接受用户的输入通过键盘 但文本框应该使用类似的设备来接受输入条码读取器 我想持有一个计时器并获取两次击键之间的时间跨度 尚不清楚 但也许有一个属性或更智能的算法可以实现这一点 附注它是一个 Windows 窗
  • .net core第三方图形验证

    asp net core是否提供第三方图形验证库的示例 我正在研究这个 但我查了一些资料但没有成功 请给我一些例子 谢谢 供我参考 还有其他好的库吗 https tutexchange com how to implement captch
  • 单击按钮后将对象添加到 JPanel

    I have created a JScrollPane with a JPanel inside it and I want to add JPanel JLabel Other objects after pressing the bu
  • 快速修改另一个视图控制器中的一个变量

    我正在用 Swift 开发一个应用程序 它的要点是告诉人们各种货币的比特币价格 要选择货币 用户可以使用 UITableView 从视图控制器的列表中进行选择 这是currencyViewController 它是从我的主屏幕viewCon
  • Swift - 二元运算符 == 不能应用于两个 [[Double]] 操作数 [重复]

    这个问题在这里已经有答案了 我写了一个像这样的小函数 func compareTest values Double if values 1 0 2 0 some code 但是当我尝试编译时 我在比较时收到错误 二元运算符 不能应用于两个
  • neo4j - 如何通过rest api运行1000个对象的查询

    我需要运行 1000 个对象的查询 使用 batch端点我可以让它工作 但太慢 30 秒 300 个项目 所以我正在尝试与本文档页面中所述相同的方法 http docs neo4j org chunked 2 0 1 rest api cy
  • Eval 是邪恶的...那么我应该用什么来代替呢?

    ajax 请求返回一个标准 JSON 数组 其中填充了用户的输入 输入已被清理 并且使用 eval 函数 我可以轻松创建我的 javascript 对象并更新我的页面 所以问题就在这里 无论我多么努力地尝试清理输入 我都不愿意使用 eval
  • Valgrind:内存泄漏与否?

    我在程序上运行 valgrind 得到以下输出 我将忽略上面的 83 个错误 让我知道是否应该将它们包含在日志中 9723 LEAK SUMMARY 9723 definitely lost 0 bytes in 0 blocks 9723
  • UITextView 只是水平滚动帮助

    我有一个 UITextView 我想水平显示它的文本 我的 UITextView 有一个静态宽度 UITextView alloc initWithFrame CGRectMake 0 0 161 23 所以当 UITextView 的文本
  • R从n个元素的字符向量生成大小为m的所有可能组合[重复]

    这个问题在这里已经有答案了 所以 我有这个用于基因组数据的向量 c T A C G 我想生成大小 3 的所有可能组合 并重复 例如 T T T T T A T T C T T G T A T 这会给我 4 3 64 种组合 大小 4 的组合
  • Exoplayer如何知道要使用自定义视频视图播放哪个URL

    我正在开发一个在线视频播放器 我正在使用TextureVideoViewMute extends TextureView implements TextureView SurfaceTextureListener自定义类作为自定义视频播放器