首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Android中,无法以编程方式处理Exoplayer控制器可见性

在Android中,ExoPlayer是一个功能强大的开源媒体播放器库,用于播放音频和视频文件。ExoPlayer提供了一个默认的控制器,用于控制媒体的播放、暂停、快进、快退等操作。然而,有时候我们可能需要在特定情况下隐藏或显示ExoPlayer控制器。

要以编程方式处理ExoPlayer控制器的可见性,可以通过以下步骤实现:

  1. 获取ExoPlayer实例:首先,需要获取到正在使用的ExoPlayer实例。可以通过创建一个ExoPlayer对象或者获取已经存在的ExoPlayer对象来实现。
  2. 获取控制器实例:通过ExoPlayer对象的getPlayerControl方法,可以获取到控制器实例。例如:
代码语言:txt
复制
PlayerControl playerControl = exoPlayer.getPlayerControl();
  1. 设置控制器可见性:通过控制器实例的setShowTimeoutMs方法,可以设置控制器的可见性。该方法接受一个时间参数,表示控制器在多少毫秒后自动隐藏。如果想要控制器一直可见,可以将时间参数设置为0。例如:
代码语言:txt
复制
playerControl.setShowTimeoutMs(0);
  1. 控制器的其他操作:除了设置可见性,还可以通过控制器实例进行其他操作,如播放、暂停、快进、快退等。具体的操作方法可以参考ExoPlayer的官方文档。

ExoPlayer的优势在于其灵活性和可定制性,可以根据具体需求进行扩展和定制。它适用于各种应用场景,包括音频播放器、视频播放器、直播等。

腾讯云提供了一系列与媒体处理相关的产品和服务,可以与ExoPlayer结合使用。其中,腾讯云点播(VOD)是一个强大的媒体处理和分发平台,可以用于存储、转码、加密、播放等操作。您可以通过以下链接了解更多关于腾讯云点播的信息:

请注意,本回答中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,以遵守您的要求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

音视频开发之旅(44)-ExoPlayer介绍及简单使用

ExoPlayer没有设定可以播放的媒体类型、存储方式以及渲染方式,也没有直接实现加载和播放。而是播放器被创建或者准备播放时将这些工作代理给注册的组件来实现。...我们的日常项目开发,开发一个组件 从易用性和扩展性方面考虑,既要保证使用者很容易上手使用(提供一套默认实现),又要有方便使用者根据自己的场景进行方便的扩展的能力。...STATE_ENDED: 播放完了所有的资源后处于改状态 二、ExoPlayer的简单使用 这一小节我们学习实践ExoPlayer的使用 2.1 AS引入library ExoPlayer有很好的扩展性和定制性...player.prepare() printCurPlaybackState("prepare") // 此时处于 STATE_BUFFERING = 2; 2.3 播放监听 当前是否播放...,requesetPermission动态的请求下。

6.7K00

ExoPlayer播放音视频的使用介绍

ExoPlayer是一款开源的应用级媒体播放器,基于Android的低级媒体API构建。本指南描述了ExoPlayer库及其使用。它是指ExoPlayer的主要演示应用程序的代码,提供具体的示例。...通过ExoPlayer发送消息确保操作按照播放器上正在执行的任何其他操作的顺序执行。 大多数ExoPlayer的开箱即用的渲染器支持回放期间允许对其配置进行更改的消息。...这些消息应该在回放线程上传递确保线程安全 八、定制 ExoPlayer相比Android的MediaPlayer的主要优点之一是可以自定义和扩展播放器,更好地适应开发人员的使用情况。...您可能希望实现您自己的DataSource类另一种方式加载数据,例如通过自定义协议,使用自定义HTTP堆栈或从自定义持久性高速缓存中加载数据。...九、数字版权管理 Android 4.4 (API级别19)和更高版本ExoPlayer支持数字版权管理(DRM)保护回放。

6.1K20

音视频开发之旅(45)-ExoPlayer 音频播放器实践(一)

设计音乐播放器APP架构时,有几种常用的做法 方案一 注册Service,用于数据设置、音乐控制,Service自定义播放器的一些状态值和回调接口用于流程控制 通过广播、aidl等实现和页面层逻辑的通信...使用UI和媒体控制器的活动应包括与MediaBrowserService进行通信的MediaBrowser。...也包含媒体播放器实例(比如我们本篇实践的ExoPlayer) MediaSession 一般MediaBrowserService的onCreate创建,通过MediaSession.CallBack...//像播放结束、自动切歌,则无法收到该回调(那该如何处理呐?)...Activity直接和Service通过MediaSession框架的各种回调进行通信,播放器ExoPlayer封装在Service内,数据的获取也Service

4.9K00

4款知名播放器比较:ijkPlayer、VLC、SmartPlayer、ExoPlayer

]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理; [缓冲时间设置]支持buffer time设置; [首屏秒开]支持首屏秒开模式; [复杂网络处理]支持断网重连等各种网络环境自动适配...; [快速切换URL]支持播放过程,快速切换其他URL,内容切换更快; [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack.../OpenSL ES; [实时静音]支持播放过程,实时静音/取消静音; [实时音量调节]支持播放过程实时调节音量; [实时快照]支持播放过程截取当前播放画面; [只播关键帧]Windows...; VLC对点播的支持比较好,但是工程庞大,接入或二次开发难度比较大; SmartPlayer对RTSP和RTMP直播播放支持非常优秀,毫秒级延迟,稳定性比较好; ExoPlayer不太适合直播,视频解码无法接入软解...,扩展性一般,而且只支持Android平台。

7.3K70

企鹅FM(Android) 播放成功率从 2 个 9 到 3 个 9 的蜕变

作者:张陈博男 业务层播放器架构演变 企鹅FM android端的播放器架构经历过两次较大的调整 第一次是2.1版本,首次引入了FFmpeg为基础的腾讯视频SDK,替换了之前一直使用的系统播放器,结束了不同机型上表现不一和调用其...一套统一的代码,这也是作为一个优秀的业务播放器的必备条件,否则假如建立系统播放器基础上(各个厂商都会修改系统播放器代码),同样的实现在不同的机型上几乎无法做到表现一致,更遑论成功率了(常常是改动了调用方式后...转化为业务层错误码 高 谷歌ExoPlayer 除MediaCodec以外是 完善,所有错误都通过java层异常抛出,直接转化成对应处理逻辑或者业务层错误码 注:这里的接入层指的是为了实现完整的业务逻辑...于是当发现ExoPlayer能够很完善解决这两个问题的时候,我们就进行了替换 得益于ExoPlayer高度扩展的特性,我们去除了本地代理模块,将分片加载和缓存以及音频的变速和特效处理模块直接集成进来...,导致播放错误偏高,后来发现这里面很多异常其实是自己代码实现的逻辑问题,需要解决,所以播放错误仅仅应当统计播放下载过程无法解决的问题,而不应该包括代码的逻辑缺陷,后者应当继续抛出crash,由bugly

3.8K00

Android 音频播放速率调整实现

MediaPlayer 播放音频最先想到的就是MediaPlayer这个Android提供的原生API了,Android 6.0+(23+)MediaPlayer可以通过setSpeed来改变播放速率...代码,我们需要: // 设置音乐播放速度 public static void changeplayerSpeed(float speed) { if (mPlayer == null...以前,需要另想办法处理,后续查到好的方法再补充 } } 实际实现过程 ,我发现手上的测试机Honor V9执行该操作后 ,播放静默了 ,不仅没有实现播放速率的切换,播放也不能恢复。...ijkPlayer ijkplayer是b站基于ffplay的轻量级Android/iOS视频播放器,实现了跨平台的功能,API易于集成;编译配置裁剪,方便控制安装包大小。...实际实现过程 ,seekTo正常,播放速率切换也正常(只是切换到慢速0.5x的时候存在重音的情况),但是播放不了https开头url的音频文件,搜索了一下需要自己编译ijkplayer源码支持https

1.2K10

Ijkplayer、ExoPlayer、VLC播放器综合比较

; 优点: 1.接入包小,1.1M; 2.维护团队强大,更新速度快; 缺点: 1.不太适合直播; 2.视频解码无法接入软解,扩展性一般; 3.适合播放场景简单的项目,播放过程无切换码流的情况; --...-- ExoPlayer 会替代MediaPlayer成为Android平台上的默认播放器吗?...不会,两个原因: Android 5.0 之后Android的Codec架构做了依次重大调整,放弃了AwesomePlayer ,使用NuPlayer架构,ExoPlayer 没有做过多的兼容; ExoPlayer...目前还是一个小而轻的播放器,如果要合成到系统,它需要调整的东西太多,代码量会变得很繁杂,很可能得不偿失; 综合分析 对于Android 团队播放器选型这一块,我觉得根据情况选择ijkplayer或者...exoplayer; 如果你的播放场景比较简单,播放的视频源比较单一,例如短视频,建议选择exoplayer; 如果你的播放场景比较复杂,有直播场景,特别是涉及到播放过程码流的切换,还是选择ijkplayer

7.8K20

ExoPlayer 多路流切换

这种也是ExoPlayer支持本身支持的方式。...这种播放器只能使用重启播放器方式实现码流切换。ExoPlayer作为开源播放器,具备很好的扩展性,既支持DASH/HLS切换,同时也支持解码器重启方式的切换。...ExoPlayer 支持多种资源读取方式MediaSource 的子类开放给开发者使用,我们常用的有ProgressiveMediaSource、DashMediaSource、HlsMediaSource...四、对齐 4.1 对齐流程 本文所说的对齐和DASH、HLS有本质的区别,不存在切片,但是仍然要解决对齐问题,ExoPlayer对齐的过程并没有直接去调用seek方法对齐,而是通过SeekPoint...对齐过程ExoPlayer只要存在音频渲染器,那么音画同步的时间音频为准。 对齐过程,如果缺少音频,那么音画同步独立时钟为主。

90831

Android主流播放器比较

VideoView 的使用非常简单,播放视频的步骤: 界面布局文件定义 VideoView 组件,或在程序创建 VideoView 组件 调用 VideoView 的如下两个方法来加载指定的视频:...支持高级的 HLS 特性,例如正确处理 EXT-X-DISCONTINUITY 标签; 支持自定义和扩展,ExoPlayer 专门为此设计; 便于随着 App 的升级而升级。...2. Activity 的 onCreate 方法添加如下代码,初始化 Vitamio 的解码器 @Override public void onCreate(Bundle icicle) {...LibsChecker.checkVitamioLibs(this)) return; } 3. AndroidManifest.xml 声明 InitActivity <activity...ijkplayer config 目录下提供了三种 module.sh 。也自己修改 module.sh 。 缺点: ijkplayer 的缺点是库太大。

2.9K20

YouTube开源播放器中文使用指南

贰·ExoPlayer的优缺点 优点 不同Android版本和不同的手机设备上拥有更统一的行为表现,更少的设备差异带来的问题。 作为一个独立的库,可以很轻易的升级。...添加ExoPlayer的依赖 首先我们要保证项目根目录的build.gradle包含Google和JCenter仓库: repositories { google() jcenter...() } app module的build.gradle添加对ExoPlayer的依赖: implementation 'com.google.android.exoplayer:exoplayer...并通过下面的方式和播放器绑定: playerView.setPlayer(mExoPlayer); 播放前的准备 对于ExoPlayer而言,所有被用来进行播放的资源都使用MediaSource进行包装...既然是Yutube使用的播放器,如何强大读者自行去挖掘,也挖掘源码的设计架构。

3.8K20

FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题

即使不用VLC播放器,直接在Qt工程的C++代码调用FFmpeg的API,也能访问ZLMediaKit的直播地址,并正常渲染视频画面。...关于如何在Qt工程引入FFmpeg,参考《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章  FFmpeg的桌面开发”。...根据该书的操作步骤,APP工程的JNI代码调用FFmpeg的API,也能正常播放ZLMediaKit的直播画面。...但是如果手机APP不走FFmpeg,通过其他途径访问直播地址之时,却发现无法播放ZLMediaKit的HLS直播地址http://124.***.***.***:8080/live/test/hls.m3u8...查看APP的报错日志,发现ExoPlayer扔出以下的错误信息:E/ExoPlayerImplInternal: Playback error      com.google.android.exoplayer2

10010

ExoPlayer 自适应流切换分析

一、前言 自适应流切换属于多路流切换的方式的一种,ExoPlayer作为MediaCodec使用的集大成者,不仅具备通过MergingMediaSource实现不同流的组合切换,同样也具备基于MGEG-DASH...ExoPlayer,MergingMediaSource 的同一类型(视频类型、音频类型、字幕类型等)的数据,由于缺乏必要的码率参数, 无法将相似Format的Track数据合并为一组,因此使用的...MediaSource 媒体源:ExoPlayer,得益于对从DataSource抽象出了MediaSource,使得ExoPlayer多路流管理方面更加灵活方便。...SeekPoint:ExoPlayer,SeekPoint 往往是IDR帧即将开始的位置。...不仅支持多路流合并方式切换,也支持自适应流切换,具备高度定制化的能力,因此,对于体验要求较高的场景,完全通过修改自适应流相关接口实现更加顺滑的多路流切换。

1K30

01.视频播放器框架介绍

比如播放需要更新UI进度条,播放异常需要显示异常UI,都比较难处理播放器状态变化更新UI操作 UI难以自定义或者修改麻烦 比如常见的视频播放器,会把视频各种视图写到xml,这种方式在后期代码会很大,...这个每个实现类则都可以拿到这些属性呢 BaseVideoController中使用LinkedHashMap保存每个自定义view视图,添加则put进来后然后通过addView将视图添加到该控制器,...添加布局 注意,实际开发,由于Android手机碎片化比较严重,分辨率太多了,建议灵活设置布局的宽高比为4:3或者16:9或者你认为合适的,可以用代码设置。...activity的属性值 android:configChanges 保证了全屏的时候横竖屏切换不会执行Activity的相关生命周期,打断视频的播放 android:screenOrientation...系统的扩展性也就变得非常好,完全符合“开闭原则” 9.2 播放器UI抽取封装优化 发展遇到的问题 播放器支持多种场景下的播放,多个产品会用到同一个播放器,这样就会带来一个问题,一个播放业务播放器状态发生变化

2.6K51

ExoPlayer漫谈之解码器复用

播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块...针对codec 复用, 2.10版本之前和2.10之后的版本, 使用方式和原理还是有所不同的....2.10之前的版本,只要视频渲染器保持启用和启动状态,ExoPlayer就会尽可能重复使用视频解码器。特别是,这意味着从播放列表的一种媒体过渡到另一种媒体时,视频解码器将被重用。...渲染列表过渡到禁用状态时,音频解码器不会在此类播放列表过渡重用,视频或音频解码器也不会重用。...播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例的 当重新prepare新的视频时,调用prepare之前不能调用stop函数,因为stop函数会释放解码器实例

2.1K31

ExoPlayer 漫谈之解码器复用

播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块...针对codec 复用, 2.10版本之前和2.10之后的版本, 使用方式和原理还是有所不同的....之前的版本,只要视频渲染器保持启用和启动状态,ExoPlayer就会尽可能重复使用视频解码器。...特别是,这意味着从播放列表的一种媒体过渡到另一种媒体时,视频解码器将被重用。渲染列表过渡到禁用状态时,音频解码器不会在此类播放列表过渡重用,视频或音频解码器也不会重用。...播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例的 当重新prepare新的视频时,调用prepare之前不能调用stop函数,因为stop函数会时方解码器实例

2.5K60
领券