当前位置: 首页 > 知识库问答 >
问题:

设置播放器后Android ExoPlayer控件不工作

萧玮
2023-03-14

我有一个使用ExoPlayer在服务中运行的Android应用程序播放音频。在Active-A中,您可以选择要播放的曲目。服务开始并开始播放音频。控件变得可见,一切看起来正常:

当我移动到Active-B时,音频会继续在后台播放,因为它是一项服务。当我返回Active-A时,控件会出现,但显示不正确。音频仍在播放,但进度条不正确,播放和暂停按钮都在显示,而不仅仅是暂停:

我必须与控件交互,比如单击“播放”按钮,然后它们看起来再次正常,进度条显示正确。

这是将播放器连接到控件的方法:

private void initializePlayer() {
    if (isBound && audioPlayerService != null) {
        player = audioPlayerService.getPlayerInstance();
        playerControlView.setPlayer(player);
    }
}

为什么控制装置不能立即工作?

共有1个答案

卓瀚
2023-03-14

使用以下代码修复:

private void initializePlayer() {
    if (isBound && audioPlayerService != null) {
        player = audioPlayerService.getPlayerInstance();
        if (audioPlayerService.isPlaying()) {
            playerControlView.setVisibility(View.VISIBLE);
        }
        playerControlView.setPlayer(player);
    }

}

说明:

经过一些研究,我注意到在使用PlayerControlView将播放器附加到视图之后。setPlayer(),PlayerControl视图。调用updateAll()方法以确保一切正常。但是,需要检查控件是否可见,并且除非控件实际可见,否则更新不会完成(方法退出):

if (!isVisible() || !isAttachedToWindow) {
  return;
}

在我的代码中,我首先将播放器附加到控件上,然后才使它们可见(这对我来说似乎是合乎逻辑的),所以这就是问题所在。

 类似资料:
  • 进入具体播放器编辑页面,点击LOGO标签,设置播放器LOGO。 用户可以选择上传或者外链一张图片作为播放器LOGO。 · 可为LOGO添加链接地址,点击跳转到指定位置; · LOGO将被添加在视频播放器上,不会对您的视频源文件产生影响; · 系统支持您根据需要对LOGO显示位置(左上、左下、右上、右下)及透明度进行自由设定; · 可通过开关控制LOGO是否展示; · 系统不提供LOGO大小的修改,

  • 点击各播放器的编辑按钮,进入具体播放器编辑页面。 播放器编辑页面 基础类、展示类可编辑设置项如下图所示: 项目 基础类播放器 展示类播放器 皮肤外观 5款 2款 LOGO √ √ 缓冲片头 √ √ 右侧菜单-系统 默认开启 默认关闭 右侧菜单-自定义 √ √ 综合功能-面板自动隐藏 √ - 综合功能-分享设置 √ √ 播放列表 √ √ 域名限制 √ √ 视频推荐 √ √ 1)设置播放器皮肤 进入具

  • VR播放设置需账号开通VR播放权限,开通权限后账号可以通过全局设置和分类设置控制视频是否为VR(全景)播放。 全局设置 进入视频页面,在全局设置页面,点击VR播放按钮 全局设置VR播放为“ON”时,默认所有分类下的视频为VR播放;全局设置VR播放为“OFF”时,默认所有分类下的视频为非VR播放。 分类设置 若需对某一级分类进行VR播放开关设置,可以选择【分类管理】,在一级分类后 “操作”中的“设置

  • 进入具体播放器编辑页面,点击缓冲片头标签,设置播放缓冲片头。缓冲片头位置如下图所示: · 可通过引用线上素材和本地上传两种方式,添加视频加载时的缓冲片头; · 用户可通过开关控制缓冲片头是否展示; · 仅支持JPG、JPEG、GIF、PNG、SWF格式素材文件; · 素材文件大小不可超过500KB; · 用户可保存多组片头切换使用。

  • 进入具体播放器编辑页面,点击播放列表标签,设置播放列表样式。 设置播放列表的样式:选择视频封面缩略图、文本框和文字列表; 设置播放列表的位置:上、下、左、右,文字列表形式只有左右两种位置。

  • 我正在尝试向Google Play商店发布一个新的应用程序,我已经完成了Google Play控制台中要求的所有步骤,除了声明应用程序中是否有广告。 问题是当我去“应用内容- 设置在哪里? 更新这似乎只发生在火狐,在铬的选项显示