问题标签 [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.
android - 是否可以手动更改 exoplayer 的分辨率?
我正在开发一个使用 Exoplayer2 进行 HLS 视频流的项目。自适应流在我的 exoplayer 中运行良好,但我想实现一个功能,用户可以从 UI 手动更改视频的分辨率(144p、240p、480p ..)。我从 TrackGroup API 获得了播放视频的分辨率。但不知道如何手动将分辨率值设置到播放视频中。谢谢
android - Exoplayer 2 Player not resuming play
There is an issue with my player activity, which i cant resume play back. Here is the code.
Player is working fine. But when the device locks and activity resumes the player is not resuming the playback.Please help me to resolve this issue. Thanks in advance.
android - 对 ExoPlayerImplInternal 的引用导致过多使用 RAM
我在 ViewPager 的每个片段中有两个 ExoPlayer 实例。在刷了很多次之后,应用程序达到了大约 120MB 的 RAM,并且开始运行非常缓慢。不过,我从来没有收到 OutOfMemoryException。
查看 hprof 文件,我看到有 37 个 ExoPlayerImplInternal 实例,尽管我确保每次 Fragment 的视图在和中销毁onDestroy()
时都正确释放它。onDetach()
onDestroyView()
这是我初始化播放器的方式:
在 Fragment 中,这是释放方法,在onDestroy()
和onDetach()
中调用onDestroyView()
:
我有点迷失在哪里可以保留对所有这些实例的引用,因为在 ViewPager 中,唯一初始化的播放器是可见的播放器和两个相邻的片段。
android - Exoplayer 错误中的 Widewine Drm
我正在 Exoplayer Android 上实现一个 OTT 应用程序。我们正在使用 Widewine DRM 保护我们的内容。但我们得到了如下所示的错误。
代码如下所示
请帮我解决这个问题。提前致谢。
exoplayer - 是否可以仅使用 ExoPlayer 下载 HLS 流但我自己的代码来显示它?
我需要编写一些代码来下载 m3u8 流,但我需要能够在下载流之后对其进行操作,并且我需要能够用我自己的代码显示它。ExoPlayer可以做到这一点吗?本质上,我只希望 ExoPlayer 处理所有下载部分。
谢谢。
android - 如何将 ExoPlayer 嵌入到 android 库中?
我想将 ExoPlayer 嵌入到 android 库中,我该怎么做,有什么想法吗?
android - Exoplayer2 DRM 异常应该WaitForKeys
嗨,我正在将我的工作 DRM 实现从 Exoplayer 1.x 切换到 Exoplayer 2.x,但我有一些例外,我无法播放 DRM 许可视频。我的 drm 会话管理器:
我有 drmSession 然后当 HttpMediaDrmCallback 执行时
里面有调用时导致onDrmSessionManagerError
(java.lang.IllegalArgumentException)的调用:
在 com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.shouldWaitForKeys(MediaCodecRenderer.java:735) 在 com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:676) 在 com.google.android.exoplayer2 .mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:511) 在 com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479) 在 com.google.android.exoplayer2。ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:135) 在 android.os.HandlerThread.run(HandlerThread .java:61) 引起:com.google.android.exoplayer2.drm.DrmSession$DrmSessionException:com.google.android 处的 java.lang.IllegalArgumentException。exoplayer2.drm.DefaultDrmSessionManager.onError(DefaultDrmSessionManager.java:604) 在 com.google.android.exoplayer2.drm.DefaultDrmSessionManager.onKeysError(DefaultDrmSessionManager.java:599) 在 com.google.android.exoplayer2.drm.DefaultDrmSessionManager.onKeyResponse( DefaultDrmSessionManager.java:559) 在 com.google.android.exoplayer2.drm.DefaultDrmSessionManager.access$900(DefaultDrmSessionManager.java:50) 在 com.google.android.exoplayer2.drm。DefaultDrmSessionManager$PostResponseHandler.handleMessage(DefaultDrmSessionManager.java:679) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.os.HandlerThread.run (HandlerThread.java:61) 原因:com.google.android.exoplayer2.util.Assertions 处的 java.lang.IllegalArgumentException。checkNotEmpty(Assertions.java:138) 在 com.google.android.exoplayer2.upstream.DefaultHttpDataSource.(DefaultHttpDataSource.java:148) 在 com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory.createDataSourceInternal(DefaultHttpDataSourceFactory.java:81) 在com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory.createDataSourceInternal(DefaultHttpDataSourceFactory.java:22) 在 com.google.android.exoplayer2.upstream。HttpDataSource$BaseFactory.createDataSource(HttpDataSource.java:176) 在 com.google.android.exoplayer2.drm.HttpMediaDrmCallback.executePost(HttpMediaDrmCallback.java:139) 在 com.google.android.exoplayer2.drm.HttpMediaDrmCallback.executeKeyRequest(HttpMediaDrmCallback. java:134) 在 com.google.android.exoplayer2.drm.DefaultDrmSessionManager$PostRequestHandler.handleMessage(DefaultDrmSessionManager.java:702) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.os.HandlerThread.run(HandlerThread.java:61)
我不知道它为什么会崩溃,因为在我的 Exoplayer 1.x 实现中运行良好。
android - ExoPlayer2 - 如何从片段中释放
我有一个包含 2 个片段(不是 ViewPager)的活动,并且想在其中一个片段中使用 ExoPlayer2 来播放内容。初始片段显示内容列表,单击时显示第二个片段以播放所选内容。但是,当我单击返回初始片段时,我仍然可以听到播放的内容;就好像第二个片段仍然打开一样。我(试图)以这种方式释放播放器:
我读了这个,但它并没有提供太多的解决方案。此外,阅读几篇在 ViewPager 片段中使用 ExoPlayer 的帖子,但不确定这些示例是如何释放播放器的。遵循此处找到的演示应用程序中的 releasePlayer() 方法,但没有运气。从 onPause()、onDetach()、onDestroyView() 调用 releasePlayer() 但没有区别。
这是在将侦听器添加到播放器后设置的一些日志记录,但看不到任何解释它为什么不释放的东西......
尝试单击按钮但失败
每次我关闭它时它都会崩溃(使用后按,家庭或最近)b / c不再有播放器。使用 if (player != null) 更新了 releasePlayer() 方法,但即使在单击按钮后仍能听到播放的内容。
android - Exoplayer 禁用自适应行为(Dash 或 HLS)
嗨,我正在尝试为自适应轨道(破折号或 hls)执行播放,但禁用更改为另一个分辨率的功能,这可能吗?我想让一个固定的质量,没有动态切换。
我正在尝试使用DefaultTrackSelector
带有setSelectionOverride
方法的类,但没有效果。
已编辑
我正在使用这个假定的固定质量选择进行测试,但没有成功:
已编辑 2
最后我得到了一个修复,如下所示:
我需要对 Exoplayer 1.x 做同样的事情,但没有这些对象可用。