问题标签 [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.

0 投票
2 回答
3761 浏览

android - 防止 .mp4 视频的 Exoplayer 重新缓冲

在这个项目中有一个“SimpleExoPlayer”,播放器的版本是“exoplayer:r2.5.3”。运行应用程序“SimpleExoPlayer”后缓冲视频内容并流畅播放。但是用户将“SeekBar”设置为之前的位置,“SimpleExoPlayer”重新缓冲以显示视频。对于大文件大小的“.mp4”视频来说,这是一个耗时的过程。感谢您帮助解决此问题。

下面是我的代码。

activity_main.xml

MainActivity.java

0 投票
1 回答
959 浏览

android - Exoplayer 的 DynamicConcatenatingMediaSource 不起作用

我正在实现一个音乐应用程序。我在用Exoplayer2

我正在尝试使用DynamicConcatenatingMediaSource动态向播放列表添加和删除项目。

这是我的实现。

但是,这个实现不起作用。它什么都不播放。

上面的代码有什么问题?

另外,如何将项目动态添加到播放列表?上述addItemToPlaylist工作会吗?

0 投票
0 回答
1390 浏览

android - 视频在 android 4.2.2 版本中不使用 exoplayer 流式传输,但适用于 5.1

我正在开发一个使用 Exoplayer 库(认为它是视频流的最佳可用库)流式传输 MPEG-2 TS 视频的应用程序。

当我尝试在具有 android 版本 5.1 的设备中播放视频时,它工作得非常好,但 4.2.2 不会发生同样的情况

我不知道这是否是 exoplayer 的问题,或者我错过了一些使 exoplayer 与旧版本一起工作的东西。

我只发布我的一些课程以供参考。

这是布局文件

和清单文件

我需要对视频进行加密,但那是一个单独的加密代码。我认为这不会有任何区别,因为视频在 5.1 版的设备中可以正常播放

这些是我运行任何视频时的日志。

非常感谢任何输入。

0 投票
1 回答
908 浏览

android - 外层播放器;将 ConcatenatingMediaSource 与音轨合并?

我有一个 HLS url 列表,我需要使用 exoplayer 2 连续播放。这不是问题:

这里的问题是我需要将这些视频静音,并播放 mp3 音轨作为背景音乐。我该怎么办?我以为我可以像这样使用 MergingMediaSource :

但这会引发以下错误:合并失败,因为源具有不同的周期计数。

我有两个问题:

  1. 如何静音传入的 HLS 流?我最好根本不加载音频以节省数据使用量。
  2. 如何在 a 下播放单独的音轨ConcatenatingMediaSource
0 投票
2 回答
6356 浏览

android - 以编程方式为 SimpleExoPlayerView 设置自定义控制器

通过 XML,我们可以轻松地将自定义 UI 控制器 ( controller_layout_id ) 添加到SimpleExoPlayerView,如下所示:

有没有办法以编程方式添加这样的布局?

0 投票
1 回答
1114 浏览

android - ExoMedia / Exoplayer MP3 元数据提取器

嗨,我正在尝试使用以下流制作一个简单的广播应用程序:http: //lb.topradio.be/topradio.mp3

目前,为了方便起见,我正在使用 ExoMedia 作为我的默认音频播放器。
它有这个setMetadataListener永远不会被调用的方法,因为在Mp3Extractor类中该peekId3Data方法有这个检查。

但是,当我在 VLC 媒体播放器中抛出相同的流时,它能够成功地从流中获取元数据。
这是如何运作的?
我可以用自定义复制这个Extractor吗?

谢谢

0 投票
2 回答
4639 浏览

android - 如何为 ExoPlayer v2.5+ 使用 MediaSession 扩展

我想将 MediaSession 与 exoplayer 一起使用,通过搜索我发现 Exoplayer 已经有 MediaSession 扩展库(https://github.com/google/ExoPlayer/tree/release-v2/extensions/mediasession),但我找不到任何关于如何实现它的好文档。

我已经阅读了谷歌开发人员提供的文档,但对我来说不清楚且难以理解,文档链接是https://medium.com/google-exoplayer/the-mediasession-extension-for-exoplayer- 82b9619deb2d

谁能帮助我如何使用 Exoplayer 实现 MediaSession 扩展。

编辑:

最后,我能够通过使用上面的链接( https://medium.com/google-exoplayer/the-mediasession-extension-for-exoplayer-82b9619deb2d)努力实现这一点。

详细信息在下面的答案部分中给出。

0 投票
1 回答
1260 浏览

android - 如何在 Exoplayer 中自动播放 ConcatenatingMediaSources?

我需要在 Exo-player 中一一自动播放 ConcatenatingMediaSources。

我的 ConcatenatingMedia 源代码:

我的玩家准备:

我目前在 onPlayerStateChanged() 中使用以下代码:

我只是寻找轨道位置。

这是手动搜索。但我想一个接一个地自动播放。

我无法自动播放选项 Exoplayer。任何人都可以帮助我

0 投票
0 回答
862 浏览

android - ExoPlayer 中的重试按钮正在恢复视频,但 SeekBar 正在重置

我试图找出许多不同链接中的问题,但我无法找到任何解决方案。

当设备互联网断开连接并在我单击重试按钮时重新连接互联网连接后,视频会继续播放,但搜索栏和开始持续时间会重置,之后搜索栏确实表现异常(例如,如果我向前搜索 20 分钟. 它只搜索到 2-3 分钟,或者如果我稍微回溯一下,开始持续时间变为负数,这完全不合逻辑)。

我在播放控制视图中做了一些更改,主要是 UI 更改并在状态上添加了加载器(自定义进度对话框)以显示缓冲。我认为这不会影响 ExoPlayer 的搜索栏功能。

下面是我的播放器活动类(即 PlayerActivity1)的代码和该类的进度更新方法的日志,用于交叉检查 SeekBar 的位置,为什么在重试按钮单击后它会被重置。

玩家活动1

当互联网断开并重新连接时记录

0 投票
0 回答
459 浏览

android - Exo 播放器 2:mp3 文件的最后一个单词/音节在某些设备上被剪切

问题描述

我正在尝试实现 Exoplayer 以循环播放背景音乐,同时在点击事件上播放语音。我无法在文件末尾添加静音,因为我以原始方式播放它们以制作如下句子:

文件一:“选择”

文件二:“一个类别”

这就是为什么我不能在 2 个文件之间有一个静音间隔,并且应用程序中有大约 1500 个文件,所以我这样做是为了节省空间。

起初我使用 MediaPlayer,但发现在某些手机(一加 A0001)上我不能同时使用 2 个 Mediaplayer,所以我决定使用 Exoplayer。2 名玩家正在服务中运行。

背景音乐是​​原始文件夹中的 ogg 文件,效果很好。

我无法播放原始文件夹中的 mp3 语音文件,所以我将它们放在资产文件夹中并设法播放它们。我现在面临的问题是,在我的某些设备上,每个 mp3 文件最后都会被剪切。切割的长度取决于设备。

我做错什么了吗?

谢谢你的帮助

这是我的声音播放器代码

这是我的音乐播放器代码

正在使用的 ExoPlayer 版本

正在使用的 Android 设备和版本

有问题的设备:Samung Galaxy note 3 SM-N9005 (Android v5.0) Acer Iconia B1-710 (Android v4.1.2)

没有问题的设备:一加 A0001 (Android v6.0.1) Samung Galaxy note 1 GT-N7000 (Android v4.1.2)