问题标签 [exoplayer2.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
exoplayer - 他们在内存中有一个 exoplayer 池有什么缺点吗?
我有一个应用程序,可以向用户显示类似于 Instagram 的照片/视频源。我想要尽可能流畅的滚动体验(避免滚动中的任何滞后)。问题是创建一个空的 simpleExoPlayer 可能需要大约10 到 20 毫秒(足以在滚动中出现帧丢失)。所以我想在应用程序启动时创建一个包含 10 个空 simpleExoPlayer 的池,并在请求时将它们提供给提要。当应用程序不滚动时,我将重新创建或重置使用过的 simpleExoPlayer(这就是为什么我需要最少 10 分钟,因为我需要等待用户停止滚动)。
他们在内存中有 10 个空的 exoplayer 有什么缺点吗?我的意思是 exoplayer,即使是空的,会使用大量资源/内存/CPU 吗?
另外,我可以遵循哪些提示以获得最流畅的滚动体验?
exoplayer - 使用 Exoplayer 离线查看 HLS 视频
我正在寻找显示如何下载 HLS 视频和播放下载的视频的示例代码。
android - 从字符串创建 MPD 文件
我设法创建了一个 MPD 文件,当通过 URL输入ExoPlayer 2.6.0 (MPD 托管在测试服务器中)时,该文件可以完美播放。
但是,我需要在 Android 中创建此 MPD 文件并将其提供给 ExoPlayer,而无需向服务器请求该文件。到目前为止,我试图理解 DashManifest 和 DashManifestParser 类,但没有成功。任何想法如何在 Android 中创建文件并将其直接提供给 ExoPlayer?
android - 如何将字节数据动态添加到 Exoplayer MediaSource 以继续播放下载的字节
我能够播放保存在本地文件中的音频,方法是将其转换为字节数组并加载到 Android 的 ExoPlayer 中。
我想知道是否有任何方法可以在下载时将大型音频文件的流字节加载到 ExoPlayer 中。我正在从外部服务器下载大型音频文件。我不想等待音频完全下载并加载字节数组。
如果您有任何想法和建议,甚至为我指明正确的方向,将会有很大帮助。
android - exoplayer2:从 ConcatenatingMediaSource 开始暂停视频
在播放ConcatenatingMediaSource
播放列表中的视频时,我希望播放器在新项目开始时自动暂停,例如。不会自动播放。
使用演示应用程序,我修改onPositionDiscontinuity
了函数来检测当前项目的变化:
虽然这段代码暂停了播放器,但它并没有清除播放器使用的表面视图,因此我们仍然看到上一个视频的最后一帧。我想这个回调被调用得太快了,但这是我发现的唯一一个总是在播放列表项更改时调用的回调(onPlayerStateChanged
可能不会被调用)。
如何显示新当前项目的第一帧而不是上一个项目的最后一帧?
我的弱解决方法是延迟 200 毫秒的调用Handler().postDelayed({ mPlayer?.playWhenReady = false }, 200)
。
android - Exoplayer 2 质量再现,如 320p、480p、720p 和 1080p
我希望实现质量再现选项,例如(320p、480p、720p 和 1080p)YouTube 支持使用 Exoplayer 2 的方式。真的很努力寻找答案,但找不到任何东西。由于我是 Exoplayer 的新手,因此如果我能得到一些帮助,那就太好了。
这是我的代码MainActivity.java
video-streaming - Exoplayer 如何知道使用自定义视频视图播放哪个 URL
我正在开发在线视频播放器,我正在使用TextureVideoViewMute extends TextureView implements TextureView
. SurfaceTextureListener
自定义类作为自定义视频播放器。
URLs
我的回复中有两个source_url
(主 URL)和dash_url
。现在我想用ExomediaPlayer
这个,但我有以下问题。
如何对
URL
要播放的内容进行分类?或者这是否会由玩家自己在玩的时候决定?
或者我们需要使用单个
URL
玩家自动完成他的工作?
custom video surface view
4.或者和的可能组合SimpleExoPlayer
?
如何根据网络情况实现adaptive bitrate streaming
like ?you-tube 144p 220p 720p... etc
我已经尝试过提供的示例,GIT
但它们正在播放dash_url
或source_url
的示例代码
Exoplayer
exoplayer - 使用起始曲目进行短跑自适应播放,如何?
我有 3 种在我的应用程序中播放自适应破折号视频的方法:
- 固定的视频和音频轨道
- 自适应视频和音频轨道
- 自适应视频和音频轨道(带起始轨道)
前 2 种方法完美运行,但第 3 种方法表现怪异。
我正在做的是首先在“onTracksChanged”方法上设置起始轨道。一旦玩家调用 onLoadingChanged(false) 方法,我想删除开始轨道的选择并让玩家选择最佳轨道。为了删除选定的我调用 trackSelector.clearSelectionOverrides(),但这完全删除了缓冲区,视频停止并开始在最佳轨道中缓冲。
我想要实现的行为如下:
选择开始轨道(假设 144p) -> 加载第一个块 -> 删除 144p 的选择 -> 继续以 144p 播放剩余缓冲区,同时开始加载最佳轨道。
我怎样才能实现它?
android - 在单独的类中实现 exoplayer 时泄漏活动上下文
我在我的应用程序中使用了 exoplayer 3 次,所以我认为最好在它自己的类中实现它并且只使用它 3 次。
在这样做时,我引入了内存泄漏,因此它会泄漏活动并导致应用程序崩溃。
我不确定为什么会发生这种情况,因为我还没有关闭活动。我想这是因为活动或视图发生了一些变化。
如果您能告诉我我的实现有什么问题导致内存泄漏,我们将不胜感激。
这是我的 exoplayer 控制类:
我在我的活动中实现它是这样的:
android - 是否可以将视频渲染到内存缓冲区
我想知道是否可以在不使用任何 UI 元素(SurfaceView、TextureView 等)的情况下从 ExoPLaye 解码的视频帧中获取像素数据。
我想在只包含一个顶级 GlSurfaceView 的游戏中显示视频帧。我想通过我的渲染线程而不是主 UI 线程上的常规 OpenGL ES 纹理来渲染视频帧。
目前我正在使用 Xamarin.Android,但任何关于“纯”Android 的想法也很棒!
以下是我努力实现目标的方式:
创建视频播放器及其媒体源
创建所需大小和格式的 OpenGL ES Texture2D 并保留其 texName。
- 从中创建 SurfaceTexture 和 Surface
- 将创建的 Surface 设置为播放器,并在准备好时启动它
我的播放器处理视频,我听到声音并且可以通过附加的回调查看进度。我想毕竟我的纹理还应该包含解码的视频帧,但渲染它时我什么也看不到。
任何意见、建议和想法将不胜感激。