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

使用exoplayer第二次播放时不显示视频窗口

问题描述: 当使用exoplayer进行视频播放时,第一次播放正常,但第二次播放时视频窗口不显示。

回答: exoplayer是一个功能强大的开源媒体播放器库,用于在Android设备上播放音频和视频。它提供了丰富的功能和灵活的配置选项,可以满足各种媒体播放需求。

对于使用exoplayer第二次播放时不显示视频窗口的问题,可能有以下几个可能的原因和解决方法:

  1. 确保正确初始化和释放exoplayer实例:在每次播放结束后,需要正确释放exoplayer实例,以确保下一次播放时能够重新初始化。可以通过调用exoplayer.release()方法来释放资源。
  2. 检查视频窗口的可见性:确保视频窗口在第二次播放时是可见的。可以通过设置SurfaceView或TextureView的可见性来实现。例如,可以使用View.setVisibility(View.VISIBLE)方法将视频窗口设置为可见。
  3. 检查视频资源的准备状态:在第二次播放之前,需要确保视频资源已经准备好。可以通过监听exoplayer的准备状态来确定资源是否已经准备好。可以使用exoplayer.addListener()方法添加一个EventListener,并在onPlayerStateChanged()回调中检查准备状态。
  4. 检查视频播放器的状态:在第二次播放之前,需要确保视频播放器的状态已经重置。可以通过调用exoplayer.seekToDefaultPosition()方法将播放器的位置重置为默认位置,并调用exoplayer.setPlayWhenReady(true)方法来开始播放。

如果以上方法都无法解决问题,可能需要进一步检查代码逻辑和调试。可以查看exoplayer的官方文档和示例代码,以获取更多关于exoplayer的使用方法和最佳实践。

腾讯云相关产品推荐:

  • 腾讯云点播(https://cloud.tencent.com/product/vod):提供稳定可靠的视频点播服务,支持高并发、高清晰度的视频播放。
  • 腾讯云直播(https://cloud.tencent.com/product/live):提供全球范围的实时音视频直播服务,支持低延迟、高并发的直播播放。
  • 腾讯云云服务器(https://cloud.tencent.com/product/cvm):提供弹性可扩展的云服务器实例,用于部署和运行各种应用程序和服务。
  • 腾讯云对象存储(https://cloud.tencent.com/product/cos):提供安全可靠的云端存储服务,用于存储和管理各种类型的数据和文件。

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估和决策。

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

相关·内容

ExoPlayer播放视频使用介绍

以下代码显示了如何使用适用于播放MP4文件的MediaSource准备播放器。 // 在播放期间测量带宽。...(6)释放播放器 当播放器不再需要释放播放器非常重要,以释放视频解码器等有限资源以供其他应用程序使用。 这可以通过调用ExoPlayer.release完成。...给定两个视频A和B,以下示例显示LoopingMediaSource和ConcatenatingMediaSource如何一起使用播放序列(A,A,B)。...在组合中使用多个等效的MediaSource实例是允许的。 六、播放器事件 在播放过程中,您的应用程序可以侦听由ExoPlayer生成的 显示播放器整体状态 的事件。...如果播放失败,应用程序还应该向用户显示适当的错误信息。 使用SimpleExoPlayer,可以在播放器上设置其他监听器。

6.1K20

canvas实现拖动页面显示窗口视频

简介   当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频显示--当视频不在当前视口范围 ,会在右下角用一个小窗口显示当前的视频,而且可以拖拽。   ...我的想法很简单,用canvas来获取视频每一帧的数据,并用动画函数 requestAnimationFrame函数(这里没有考虑兼容性)来显示每一帧的视频数据。...另外,对canvas绑定拖动的 功能,这样就基本实现了简易的窗口视频。   ...,在之前的文章 使用cancas改变视频的灰度 一文中 已经介绍过该函数。...document.createElement("canvas"); 60 c.id = "miniVideo"; 61 // Drag 拖动插件必须要确定top和left值,不能使用

1.5K50

【AVD】简述某些视频在线播放卡顿、本地播放卡顿的问题

曾经在业务中遇到过这样的问题,我们编码出来的视频在 Android、iOS 端,使用 ijkplayer 内核的播放播放卡顿,甚至无法任意定位播放位置,将导致卡顿无法播放。...视频文件结构 教科书般的教程、课程中对视频文件结构的描述非常详细,此处赘述,简单地说,视频文件也是一种文件,是文件,就是一堆二进制数的集合,而且是一个一维的二进制数的集合。...因此,当视频文件被播放,读取文件也是从头到尾一个包一个包地读入,并且送给对应的音频或视频解码器。 因此,我们可以来看看,那些卡顿的视频的数据包中的 dts_t 和 pos 的关系是怎样的。...也就是说,下一帧要编码视频还是音频,是由封装写入的包的时间值选择驱动的。如果是多线程编码,则要阻塞视频编码或者阻塞音频编码,是由这个值来决定的。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

3K20

EasyPlayer视频播放暂停,画面仍显示码率的问题优化

EasyPlayer流媒体系列视频播放器可支持H.264/H.265视频编码,并拥有多个版本,性能稳定、播放流畅,可支持的视频流格式有RTSP、RTMP、HLS、FLV、WebRTC等,具备较高的可用性...在测试EasyPlayer新功能发现,当播放器点击暂停,屏幕还显示视频流的码率(如图)。针对这一现象,我们立即进行了优化。...经过排查发现,当视频播放处于暂停状态,代码没有及时更新码率状态,因此导致出现了上述情况。对代码进行修改,在更新视频码率,加上判断条件,如图:if (this.pause) return this....如下图所示,当视频播放停止,画面已经不显示码率了:EasyPlayer拥有Windows、Android、iOS版本,EasyPlayer.js还可支持Linux平台。...此外,EasyPlayer还支持大码率视频直播(注:H.265编码格式不支持大码率视频直播),用户可以根据实际应用场景来选择设置播放器模式。

87420

可折叠设备的桌面模式

展开您的视频播放体验 可折叠设备向用户们提供了使用他们的手机做更多事情的可能性,包括*桌面模式**等创新,也就是当手机平放,铰链处于水平位置,同时折叠屏幕处于部分打开的状态。...这是一个简单的媒体播放器案例,它会自动调节尺寸以避免让折叠处出现在画面中间,并且调整播放控制组件的位置,从屏幕完全展开嵌入画面中,变为当屏幕部分折叠显示为单独的面板。...前期准备 示例应用使用Exoplayer,这是 Android 平台上非常流行的开源媒体播放库。...{ // 视图在窗口中的位置要与显示特征在同一坐标空间中。...更多资源 Exoplayer Codelab: 用 Exoplayer 播放视频流 桌面模式实例应用 为可折叠设备而设计 为可折叠设备构建应用 Jetpack WindowManager 使用 MotionLayout

2.3K30

EasyCVR视频广场视频播放,因浏览器窗口变化导致视频画面变形该如何解决?

EasyCVR视频融合平台部署轻快、功能灵活,可支持多协议、多类型设备接入,平台基于云边端一体化架构,可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理。...在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、以及平台级联等。?有用户反馈,EasyCVR视频广场播放视频,因浏览器窗口发生变化,导致播放播放视频画面变形。??...1)增加js监听时间:window.addEventListener(“resize”, function(){});2)查看正常视频播放的比例,在宽度发生变化时,根据比例计算出其宽度,并修改该元素的宽度...,从而完成视频根据窗口自适应大小;3)在当前页面销毁,移除当前的监听,避免此监听影响其他页面。...为了便于用户集成与调用,我们也提供了丰富的API接口供用户使用,有需要的用户可以查看我们的官方API接口文档。

46910

CreateProcess显示或者创建窗口 (或用虚拟桌面实现后台调用外部程序)

【方法一:】 将 CreateProcess()的参数dwCreationFlags指定为CREATE_NO_WINDOW,即以创建窗口方式创建DOS进程。 【参考代码:】 if (!...结构中WORD wShowWindow为SW_HIDE(但是一定要有这一句: si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESHOWWINDOW; ),即以不显示窗口方式创建...CreateProcess(NULL, szCommand, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) 【方法三:】 将这个DOS窗口放到另外一个桌面上...实在没办法,我想在打开的时候不让用户看到这个执行文件:首先调用FINDWINDOW来查找窗口的句柄,之后再用SendMessage()来隐藏窗口,但是还是会有一瞬主窗口显示出来的,或许你会说我BT吧,...但是我实在是不忍心看到…… 那么怎么解决这个问题呢,首先我当然在CreateProcess()上面寻找方法,可惜,它只有一个参数可以设置窗口的默认显示方式,但是一旦这个窗口自己重设了显示方式,它就没有任何作用了

3.6K30

01.视频播放器框架介绍

还支持设置n秒后操作则隐藏头部和顶部布局功能 A.1.6 可以设置竖屏模式下全屏模式和横屏模式下的全屏模式,方便多种使用场景 A.1.7 top和bottom面版消失和显示:点击视频画面会显示、隐藏操作面板...B.1.6 切换横竖屏:切换全屏,隐藏状态栏,显示自定义top(显示电量);竖屏恢复原有状态 B.1.7 支持切换视频清晰度模式 B.1.8 添加锁屏功能,竖屏不提供锁屏按钮,横屏全屏显示,并且锁屏...视频常见的布局视图 视频底图(用于显示初始化视频的封面图),视频状态视图【加载loading,播放异常,加载视频失败,播放完成等】 改变亮度和声音【改变声音视图,改变亮度视图】,改变视频快进和快退,...也就是适合大多数业务场景 视频分层 播放器内核 可以切换ExoPlayer、MediaPlayer,IjkPlayer,声网视频播放器,这里使用工厂模式Factory + AbstractVideoPlayer...设置视频播放切换模式状态,主要是普通模式,小窗口模式,正常模式三种其中一种,方便控制器做UI更新 播放器player和view交互 这块非常关键,举个例子,视频播放失败需要显示控制层的异常视图View;

2.6K51

Android ExoPlayer 音画同步代码分析

优点:体验较好,视频视频减速,视频视频加速 缺点:需要兼容各种播放器状态,控制逻辑相对复杂,倍速为0MediaPlayer 会认为调用了pause,倍速大于0会被认为调用了resume。...前者作为Audio Master方式为视频提供音频播放时间,后者使用自然时间作为兜底的时钟,为各种Render提供播放时间。...RendererExoPlayer 中会使用自然时钟 StandaloneMediaClock。...至于syncAndGetPositionUs 我们不需要关注,这个主要是矫正连续的时间处理。 3.4 音频播放位置如何同步到视频 ?...如果 earlyUs 时间差为正值,代表视频帧应该在当前系统时间之后被显示,换言之,代表视频帧来早了,反之,如果时间差为负值,代表视频帧应该在当前系统时间之前被显示,换言之,代表视频帧来晚了。

92920

视频监控系统EasyCVR平台播放告警录像播放显示不全是什么原因?

视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入...平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC等视频流。...有用户在使用EasyCVR告警查询播放告警录像出现播放显示不全的情况。...收到用户反馈后,技术人员立即开展解决,以下为排查与解决步骤: 经过排查发现,播放器的容器没有设置高度才导致此问题: 只需给播放器的容器设置高度值,即可解决该问题。...视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等,视频智能分析平台

17130

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

作者:张陈博男 业务层播放器架构演变 企鹅FM android端的播放器架构经历过两次较大的调整 第一次是2.1版本,首次引入了以FFmpeg为基础的腾讯视频SDK,替换了之前一直使用的系统播放器,结束了不同机型上表现不一和调用其...第二次是3.7版本,使用了Google的开源播放器内核ExoPlayer替换了腾讯视频SDK,到目前最新的3.8版本,点播成功率已经优化到99.9%,HLS直播成功率优化到99.2% 最近半年包括更换...横向对比3中播放器内核: 播放器 代码统一 错误统计 接入层复杂度 系统MediaPlayer 否 不完善,播放错误码分散而且很多错误错误码相同 高 腾讯视频SDK 是 不完善,过滤日志 + 播放错误...那么是什么东西去鼓动我们换掉已经维护的很成熟的腾讯视频SDK而换用谷歌的ExoPlayer呢,动力来自于寻求到3个9的突破,而思想来自于奥卡姆剃刀原则——如无必要,勿增实体。...MediaExtractorPeriod和HlsMediaChunk的cancelLoadable()方法都没有调用dataSource的close()方法,这里我们加上了这个调用,原因在于快速切换节目

3.8K00

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

从这篇开始我们进入阶段五 —— 一些音视频开源项目的学习使用分析,今天我们进入ExoPlayer部分的学习实践 一、ExoPlayer基本介绍 1.1 ExoPlayer优缺点 ExoPlayer是谷歌开源的一个应用级的音视频播放器...1.2 ExoPlayer架构设计 ExoPlayer的核心是ExoPlayer的接口,其中定义了包涵传统播放器的功能(缓冲音视频播放、暂停、seek等)。...ExoPlayer没有设定可以播放的媒体类型、存储方式以及渲染方式,也没有直接实现加载和播放。而是在播放器被创建或者准备播放将这些工作代理给注册的组件来实现。...1.3 状态机 在看ExoPlayer的状态机之前,我们先看下MeidaPlayer的状态机 mediaplayer.png 可以看到MediaPlayer的状态比较多,使用时如果在不当的位置触发了匹配的操作...播放视频使用介绍 五、 收获 通过本次学习实践收获如下: 了解ExoPlayer的背景以及相比MediaPlayer的优缺点 了解ExoPlayer的基本功能 简单实践 感谢你的阅读 下一篇我们继续学习实践

6.6K00

Android9.0 使用 AndroidVideoCache 不能缓存播放视频的解决

一、问题现象: 项目中使用 https://github.com/danikula/AndroidVideoCache 作为视频缓存组件,但是在9.0手机上无法正常缓存,并且报错: 1、详细错误截图 ?...com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958) 二、问题原因: 根本原因是从Android9.0开始,出于完全因素考虑,默认不再支持http网络请求,需要使用...但是,在AndroidVideoCache中使用了一个缓存代理地址:http://127.0.0.1,所以,就会报错。...三、解决方案: 解决的基本思路是:对指定的网址进行过滤,强制允许指定网址继续使用http请求 参考地址1: https://stackoverflow.com/questions/45940861/android...在解除上述视频缓存库报错信息,节点的具体取值如下: 127.0.0.1 如果需要过滤某个地址,则只写域名即可,不需要写

2K20

ExoPlayer漫谈之解码器复用

我们抓一下一个1080P的本地视频的systrace, 显示如下: ?...enabled状态, 在此状态下,渲染器可以播放媒体流,并在可能的情况下(例如,在读取流的格式之后)获取解码器实例。 started状态, 在此状态下,渲染器使用持有的解码器实例来播放视频 ?...在2.10之前的版本中,只要视频渲染器保持在启用和启动状态,ExoPlayer就会尽可能重复使用视频解码器。特别是,这意味着从播放列表中的一种媒体过渡到另一种媒体视频解码器将被重用。...在渲染列表过渡到禁用状态,音频解码器不会在此类播放列表过渡中重用,视频或音频解码器也不会重用。...,例如短视频信息流都是H264/AAC编码格式 如果使用ExoPlayer播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例中的 当重新prepare新的视频

2.1K31

一个ExoPlayer原生播放问题引起的思考

问题背景 我们在使用ExoPlayer播放视频视频发现一种特殊的M3U8视频播放总是失败。 而且报如下的错误: ExoPlayerImplInternal: Source error....传输错误指示符,表明在ts头的adapt域后有一个无用字节,通常都为0,这个字节算在adapt域长度内 payload_unit_start_indicator 1b 负载单元起始标示符,一个完整的数据包开始标记为...真的发生的标准遵守怎么办?...这次ExoPlayer发生播放这样视频失败的原因,就是因为视频源没有遵守TS Packet大小为188字节的规则,这样的错误很尴尬,它违反了标准,但是它前188字节是标准的TS数据。...那就只好播放器去适配,播放器将这个校验去掉有没有问题? 从对TS格式分析来看,这样的修改不太完美,但是从播放器的兜底处理来看,这样的处理基本没有风险。因为最坏的结果就是播放失败。

3.2K20

ExoPlayer 多路流切换

相对来说,这种方案实现起来更加复杂,其次很多IOT设备对解码器数量有严格的限制,有的电视机上某种解码器只支持单个实例甚至更少的实例,多一个可能出现要么新的播放器播起来,要么旧的黑屏或者Crash。...双解码器切换: 上面说到,双播放器切换会受限于设备解码器数量限制,那是否可以在同一播放器中使用两种解码器?...这种播放器只能使用重启播放器方式实现码流切换。ExoPlayer作为开源播放器,具备很好的可扩展性,既支持DASH/HLS切换,同时也支持解码器重启方式的切换。...+ 音画同步实现了对齐逻辑,具体对齐步骤如下: 重置并统一所有渲染器的播放时间 利用起播解析的Track信息,重新注册新的解码器 查找最接近且小于播放时间的SeekPoint ,这个播放点是一个GOP...4.2 对齐结果补充 4.2.1 音频和视频对齐共同点: 音频和视频对齐各自的渲染器都可能会有轻微的跳帧现象,当然这些调整和卡顿感也和IO速度、CPU负载网速也有一定的关系,磁盘、CPU运行效率越高,

89031

02.视频播放器整体结构

01.视频常见的布局视图 视频底图(用于显示初始化视频的封面图),视频状态视图【加载loading,播放异常,加载视频失败,播放完成等】 改变亮度和声音【改变声音视图,改变亮度视图】,改变视频快进和快退...(很多播放器都有这个),清晰度列表视图(切换清晰度弹窗) 底部播放进度条视图(很多播放器都有这个),当bottom视图显示底部进度条隐藏,反之则显示 02.后期可能涉及的视图 手势指导页面(有些播放器有新手指导功能...使用简单,代码拓展性强,封装性好,主要是和业务彻底解耦,暴露接口监听给开发者处理业务具体逻辑 04.视频视图层级示意图 [image] 05.整体架构思路分析流程 播放器内核 可以切换ExoPlayer...,这个需要较强的拓展性 适合多种业务场景 比如适合播放单个视频,多个视频,以及列表视频,或者类似抖音那种一个页面一个视频,还有小窗口播放视频。...有播放完成,播放异常,播放加载,顶部标题栏,底部控制条栏,锁屏,以及手势滑动栏。如何控制它们的显示隐藏切换呢? 在addView这些视图,大多数的view都是默认GONE隐藏的。

1.6K10

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

对于自定义播放器非常友好,里面将很多模块抽象成独立的组件可供使用者自行定制,当然官方也提供了一些默认的实现。如果你正在开发视频类功能,强烈推荐你尝试一下ExoPlayer。...可以根据用户的需求方便的对播放器行为进行定制和扩展,ExoPlayer中的很多组件都支持自定义和扩展。 支持播放视频列表,并且可以支持对视频的裁剪、合并,以及循环播放设置。...的使用 我们只要按照下面的步骤就能简单的将ExoPlayer使用起来了: 1、添加对ExoPlayer库的依赖 2、创建一个SimpleExoPlayer实例 3、将播放器关联到播放渲染的View上...去播放视频的步骤。...所以当需要播放媒体资源,你得先创建一个和资源相关的MediaSource对象,然后通过ExoPlayer.prepare方法将封装的对象传入。

3.8K20

04.视频播放器通用架构实践

,没有提供图像输出界面,所以我们需要借助其他的组件来显示MediaPlayer播放的图像输出,我们可以使用SurfaceView来显示 能否实践开发出一套音视频播放的通用架构,能支持音频播放场景,也能播放视频场景...比如视频切换音频操作,增强库的功能性 视频窗口、音频窗口视频浮窗、音频浮窗、短视频窗口、短视频浮窗、音频控制台等多种场景播放,需要灵活切换,这个也是一个大的难点 03.该播放器框架特点 一定要解耦合...调用的时候,获取接口对象调用api,这样就可以统一Api 播放器内核 可以切换ExoPlayer、MediaPlayer,IjkPlayer,声网视频播放器,这里使用工厂模式Factory + AbstractVideoPlayer...5.4 视频播放器重力感应监听 区别视频几种不同的播放模式 正常播放,设置检查系统是否开启自动旋转,打开监听;全屏模式播放视频的时候,强制监听设备方向;在小窗口模式播放视频的时候,取消重力感应监听 注意一点...之前的做法是,在每个有视频的页面比如说Activity,Fragment等开启视频播放埋点一次,页面退出埋点一次。

2.3K00
领券