android - Recyclerview 中的多个 ExoPlayer 视频播放器同时播放
问题描述
我已经在 recyclerview 中实现了 Exoplayer。recyclerview 中的每 3 个项目都是视频视图,而其他项目只是图像。
我需要的是在视频静音时自动播放视频。所以有机会同时显示 2 个播放器,所以如果有 2 个视频项目甚至一半可见,我想同时播放 2 个视频。
但是第一个视频开始自动播放,当用户滚动时,第二个视频播放器变得可见并开始播放,所以第一个视频播放器停止或暂停视频。
有没有办法在 Exoplayer 中同时播放 2 个视频?
这是我用于 onBindViewHolder 方法的代码。
public void bindVideo(ExoplyerViewHolder holder, String url) {
Uri videoUrl = Uri.parse(url);
MediaSource mediaSource = new ProgressiveMediaSource.Factory( new CacheDataSourceFactory(context, 100 * 1024 * 1024, 15 * 1024 * 1024))
.createMediaSource(videoUrl);
SimpleExoPlayer simpleExoPlayer = new SimpleExoPlayer.Builder(context).build();
simpleExoPlayer.setAudioAttributes(AudioAttributes.DEFAULT, true);
simpleExoPlayer.setPlayWhenReady(true);
simpleExoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF);
simpleExoPlayer.setVolume(0);
simpleExoPlayer.prepare(mediaSource, true, true);
holder.playerView.setPlayer(simpleExoPlayer);
holder.playerView.setPlaybackPreparer(this);
holder.playerView.setUseController(false);
}
解决方案
推荐阅读
- javascript - UnhandledPromiseRejectionWarning:错误:用户密码验证失败
- android - 安卓模拟gps;什么设置可以触发此代码工作?
- c# - 为什么这里需要显式转换
- c++ - 从立方体阵列中删除内部面的最佳方法是什么?
- html - 如果不可用,如何隐藏丑陋的图片?
- typescript - 带有默认参数的打字稿柯里化
- java - 在 Java 中将 String args[] 替换为 int args[] 会发生什么?
- python - 如何用内置替换存储变量?
- php - 如何提交值并显示添加/删除按钮?
- c# - 如何修复“在unity3d中更新php服务器时间”