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

是否使ExoPlayer在每次从通知中按下播放时都查找到最后一个时间点?

ExoPlayer是一个开源的Android音视频播放器框架,它提供了强大的功能和灵活的扩展性。在每次从通知中按下播放时,ExoPlayer默认情况下不会自动查找到最后一个时间点。但是,我们可以通过编程来实现这个功能。

要使ExoPlayer在每次从通知中按下播放时都查找到最后一个时间点,可以按照以下步骤进行操作:

  1. 获取最后一个时间点:在播放器开始播放之前,可以通过调用ExoPlayer的getCurrentPosition()方法获取当前播放位置。将这个位置记录下来,作为最后一个时间点。
  2. 保存最后一个时间点:将最后一个时间点保存在本地,可以使用SharedPreferences或者数据库等方式进行存储。
  3. 恢复最后一个时间点:在每次从通知中按下播放时,先从本地获取最后一个时间点。然后,使用ExoPlayer的seekTo()方法将播放器跳转到该时间点。

通过以上步骤,我们可以实现ExoPlayer在每次从通知中按下播放时都查找到最后一个时间点的功能。

ExoPlayer的优势在于其强大的功能和灵活的扩展性。它支持多种音视频格式,具有良好的性能和稳定性。同时,ExoPlayer还提供了丰富的API和回调接口,方便开发者进行定制化开发和处理各种播放需求。

在云计算领域,如果需要将音视频文件存储在云端进行播放,可以考虑使用腾讯云的对象存储服务 COS(Cloud Object Storage)。COS提供了高可靠性、高可用性的存储服务,支持海量数据存储和访问,并且具有良好的性能和安全性。您可以通过以下链接了解更多关于腾讯云对象存储 COS 的信息:腾讯云对象存储 COS

请注意,本回答仅提供了一种实现方式和相关产品介绍,实际应用中还需要根据具体需求进行选择和调整。

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

相关·内容

ExoPlayer 多路流切换

一、背景 国内互联网的发展的过程,无论是3G、4G还是5G时代,甚至是可见的未来nG时代,音视频领域一直自始至终参与其中,编解码标准也升级了一版又一版,和音视频的相关应用领域传统的播放转为互动直播...双解码器切换: 上面说到,双播放器切换会受限于设备解码器数量限制,那是否可以同一播放器中使用两种解码器?...3.3 MediaPlayer是否支持多路流 不支持,也没法切换 3.4 ExoPlayer如何将多路流输入到播放?...+ 音画同步实现了对齐逻辑,具体对齐步骤如下: 重置并统一所有渲染器的播放时间 利用起播解析的Track信息,重新注册新的解码器 查找最接近且小于播放时间的SeekPoint ,这个播放点是一个GOP...查找出位置后SeekPoint 位置处加载媒体资源。

91731

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

设计音乐播放器APP架构,有几种常用的做法 方案一 注册Service,用于数据设置、音乐控制,Service自定义播放器的一些状态值和回调接口用于流程控制 通过广播、aidl等实现和页面层逻辑的通信...APP媒体会话 方案二 Android5.0推出的MediaSession框架(Supprot包MediaSessionCompat也对低版本做了支持),专门用来解决媒体播放界面和Service通信的问题...其中用到了Handler和Binder的线程和进程通信相关的知识,后续我们专题单独深入学习实践,这里我们先顺着流程画下播放/暂停的流程图,用户按钮到播放器开始播放以及页面更新的整个流程是怎样的。...Activity直接和Service通过MediaSession框架的各种回调进行通信,播放ExoPlayer封装在Service内,数据的获取也Service。...具体实践之前我们先来学习分析uamp这个google开源的音频播放器是如何架构的,看看在数据源设置以及播放管理方面是否可以学习借鉴。

4.9K00

Android ExoPlayer 音画同步代码分析

resume和pause之前,恢复到原有的速度 三、ExoPlayer 音画同步分析 回到本文主题,我们来分析一ExoPlayer的音画同步方式,以便利用这种机制实现一些场景的多播放器同步。... ExoPlayer com.google.android.exoplayer2.audio.BaseRenderer#getMediaClock 方法是空实现,但是子类中视频依然返回 null...,自定义的MediaClock基本上很难外部传入,那么,如果想在外部传入自定义的MediaClock怎么实现呢 ?...这个我们可以看看 doSomeWork()方法的调用,该方法 ExoPlayer 会定时调用,用来驱动播放状态、资源加载和音画同步,方法代码实现较多,这里简单截取一关键代码。...在有些业务的音频输出和ExoPlayer是分开的,我们要考虑如何通过音频播放器去同步ExoPlayer的视频渲染器,但有ExoPlayer具备高度的可扩展性,我们可以通过自定时钟的方式去同步ExoPlayer

95120

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

问题背景 我们使用ExoPlayer播放视频的视频发现一种特殊的M3U8视频,播放总是失败。 而且报如下的错误: ExoPlayerImplInternal: Source error....我们先追踪一ExoPlayr这段修改的原因。...注释来看,google觉得每次加载不一定要等到TS_SYNC_BYTE才算加载成功,但是他们显然又怕当前不是标准的TS流,就加了一个兜底,要是当前读到的位置超过两个188字节还是没有发现TS_SYNC_BYTE...这样的判断标准上而言是没有什么问题的。 我们应该怎么改 我们遇到这样的播放失败,只能采用两种办法了? 向M3U8的提供方提意见,最好修改一TS内部格式,让其符合标准。...对TS格式分析来看,这样的修改不太完美,但是播放器的兜底处理来看,这样的处理基本没有风险。因为最坏的结果就是播放失败。已经有兜底方案了,应该没有问题。 制定了标准,总有人不去遵守。

3.2K20

看点视频秒开优化:解码器复用优化方案篇

为了更贴近用户的实际感受,下面的首帧主要是指用户点击播放到第一帧画面渲染出来的时长(未经特殊说明,指此段时长,而非一般情况prepared的时长)。...二、跨播放器解码器复用方案 2.1 探索:适合短视频场景的解码器复用方案 2.1.1 什么是解码器复用 通常情况,视频正常播放解码器需要进行create()、configure()、start(...)等初始化操作,而播放其他视频每次播放都必须重新进行这一初始化流程。...ExoPlayer是一种播放器内部解码器复用方案,即解码器和播放器实例绑定。对于不同分辨率的视频A、B、C,下次播放判断该播放器实例是否可以复用,如果可以,进行复用,否则重新初始化解码器。 ?...解决痛: 跨播放器复用,全局选择解码器,支持业务配置,几乎支持所有基于MediaCodec的播放器。 2.6.2 如何接入 其他播放器接入:如果没有使用播放器,我们也可以支持其他播放器的接入。

5.5K126

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

ExoPlayer没有设定可以播放的媒体类型、存储方式以及渲染方式,也没有直接实现加载和播放。而是播放器被创建或者准备播放将这些工作代理给注册的组件来实现。...我们的日常项目开发,开发一个组件 易用性和以扩展性方面考虑,既要保证使用者很容易上手使用(提供一套默认实现),又要有方便使用者根据自己的场景进行方便的扩展的能力。...// 此时处于 STATE_BUFFERING = 2; 2.3 播放监听 当前是否播放 public final boolean isPlaying() { return getPlaybackState.../销毁(看是否需要后台播放要释放资源 override fun onDestroy() { super.onDestroy() player.removeAnalyticsListener...,requesetPermission动态的请求

6.7K00

ExoPlayer 漫谈之解码器复用

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

2.5K60

ExoPlayer漫谈之解码器复用

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

2.1K31

Jetpack可能被你忽视的—行为组件简析

想必大家了解过Camera API和Camera2 API,总结就是两个字,不好用。哈哈,自我感觉,我印象,我要照相拍一张照片,不是应该直接调用一句代码可以完成吗。...媒体和播放 “Android 多媒体框架支持播放各种常见媒体类型,以便您轻松地将音频、视频和图片集成到应用。...通知通知是指 Android 应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通信信息或应用的其他实时信息。用户可以点按通知来打开应用,也可以直接在通知执行某项操作。...只要开发者导入 Slice 功能,使用者使用搜寻、Google Play 商店、Google Assitant或其他内建功能都会出现 Slice 的操作建议。...所以,如果你的应用发布GooglePlay的话,还是可以了解学习Slice相关内容,毕竟是Google为了应用轻便性做出的又一步实验。 怎么开发这个功能呢?

2.1K30

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

这个优化过程,最艰辛的是具体问题case by case的解决,不过回过头架构上看,也是可以提炼出一些原则,来甄别到底什么样才是一个好的业务播放器。...播放器内核和业务层足够解耦,只有设计上的解耦,才能给更换更好的播放器内核打下基础,否则如果每次切换都会带来巨大的业务逻辑调整,本身就会引入很多和播放器无关的问题,对成功率优化会适得其反。...转化为业务层错误码 高 谷歌ExoPlayer 除MediaCodec以外是 完善,所有错误通过java层异常抛出,直接转化成对应处理逻辑或者业务层错误码 注:这里的接入层指的是为了实现完整的业务逻辑...,播放器内核外围的逻辑层 换ExoPlayer与奥卡姆剃刀 常做优化的同学肯定很清楚,越是小数点后面的9,越来之不易,90%到99%再到99.9%,这其中的困难可以说是指数上升的。...其他的补充手段 仅仅靠换播放器内核和重新设计业务逻辑接入是没法做到极致的,这里还针对点播和广播(HLS)做了一些额外的优化 ExoPlayer是通过抛异常来上报各种播放错误的,起初我们把全部的异常算在播放错误

3.8K00

音视频全链路技能分析之音视频消费侧技能树

建议看下我之前的一篇分析文章:Ijkplayer、ExoPlayer、VLC播放器综合比较,视频播放器很多种,但是根上面来讲的话,原理都是一直的。...还是要讲一些ExoPlayer,大家看到ExoPlayer的时候,看到代码量还是挺多的,那是因为每一种封装格式需要逐行解析。...,无论是采集、播放还是编解码,这些 API 接口需要将音频数据 Java 拷贝到 native 层,或者 native 层拷贝到 Java,如果希望减少拷贝,开发更加高效的 Android 音频应用...双缓冲:在运用时可以理解为:SurfaceView更新视图用到了两张Canvas,一张frontCanvas和一张backCanvas,每次实际显示的是frontCanvas,backCanvas存储的是上一次更改前的视图...(5)SurfaceView内部自己持有surface,surface 创建、销毁、大小改变系统来处理的,通过surfaceHolder 的callback回调通知

1.5K30

追根溯源解杂音之谜,臻于至善得完美音质

一、问题背景与分析 不久前,团队发现其Android平台App播放MV视频《凤凰花开的路口》,会带有如电流声一般的杂音,这影响了用户体验。...研发同学初步定位,发现有如下特征: Android平台杂音问题必现; iOS、PC平台能正常播放,没有噪音。 然而,各平台都是统一用HLS格式播放,即源头都是一样的。...对于该问题,我们的定位思路如下: 梳理视频播放流程; 找到切入排查。 二、播放流程概览 ?...三、问题分解与切入 梳理出播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题; 数据读取是否有问题; 音频解码逻辑是否有问题; AudioTrack的设置是否有问题...对比分析可得出: 频谱图中看出,异常的PCM人耳十分敏感的频响(1000~8000Hz )区域内的音频数据严重缺失,导致“杂音问题” 波形图中看出,异常的与正常的无声区和有声区吻合,若解封装、解码逻辑出现异常

3K81

QQ音乐MV播放杂音问题解析

重复⑥、⑦步骤到数据完毕 音频解码: audio_thread对audioq的数据进行decoder_decode_frame解码 解码后的帧AVFrame存放到sampq 音频播放: `aout_thread_n...播放 (二)分层切入 梳理出ijkplayer播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题 数据读取是否有问题 音频解码逻辑是否有问题 AudioTrack...频谱图中看出,异常的PCM人耳十分敏感的频响(1000~8000Hz )区域内的音频数据严重缺失,导致“杂音问题” 波形图中看出,异常的与正常的无声区和有声区吻合,若解封装、解码逻辑出现异常,极大几率是呈现无波动...通过强制分别读取两条音频流数据播放,发现: 第一条正常播放(PCM数据正常) 第二条播放杂音(PCM数据异常) Android端选择了第二条进行播放 (通过查看2条流的PCM数据,也验证了第3步的假设是正确的...备注: ExoPlayer对多音频流的ts分片支持不完善(issue),因此测试需要调整相关接口。

5.3K10

可折叠设备的桌面模式

这是一个简单的媒体播放器案例,它会自动调节尺寸以避免让折叠处出现在画面中间,并且调整播放控制组件的位置,屏幕完全展开嵌入画面,变为当屏幕部分折叠显示为单独的面板。...前期准备 示例应用使用了 Exoplayer,这是 Android 平台上非常流行的开源媒体播放库。...MotionLayout 结合了父类的灵活性,同时又具备视图从一种姿态过渡到另一种展示流畅动画的能力。...这样一来,当您将 ReactiveGuide 底部移动至折叠位置,布局的转换就会发生。 您可能想要将播放控件一直限定在 ReactiveGuide 的底部。...每当您获取到新的布局信息,您可以查询显示屏特征,并检查设备当前显示是否存在折叠或铰链: private fun onLayoutInfoChanged(newLayoutInfo: WindowLayoutInfo

2.3K30

选择最新 Chromium,支持 H264 H265

log 上也印证了这一: 03-07 08:35:05.895 29840 30203 I ACodec : 0x6fbdb77900 [OMX.uapi.video.decoder.avc]...这样持续了三天,一没找到头绪。再 google 一把,有人说 Chromium 105 之后的版本开始,对于 H265 的支持比较完善。那编译一个最新的版本试试吧,看看具体是什么情况。...由于前面坑踩过了一遍,现有代码上切换新版本很顺利。编译运行后发现,H264 / H265 的支持都没有问题。 选择不那么新的版本,主要是考虑想更快的熟悉代码。...start -a com.google.android.exoplayer.demo.action.VIEW -d 如果某种格式 chromium 无法播放,先使用 exoplayer...确认一 MediaCodec 这一层面上时候支持,可以更好的确认问题是 chromium 还是 Android 系统层。

70530

Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

((ノO益O)ノ彡┻━┻亲生的啊) 这里的接口主要是把当前播放的视频状态和信息到返回到逻辑播放。...逻辑播放器实现的内容太多了,这里主要说几个地方,好吧,我承认我懒╮(╯_╰)╭ ,但是写太多了也没人看啊,所以这里主要是说一些关键的,有需要留言再开个坑聊一聊,反正有DEMO。...然后新创建一个GSYVideoPlayer2,只有把这个G2添加到windowFrameLayout。 设置它的播放状态和当前列表这个逻辑播放器一致。...切换的时候可以做一些位移动画,让播放器的全屏更加友好,下面长代码来袭((/- -)/。深夜码字不易,不知道为什么每次这个时候老婆的意见很大啊。...//不要忘记配置activity,所有背景的activity android:configChanges="orientation|keyboardHidden|screenSize" 7、普通列表播放视频快速移动可能出现的错位问题

2.6K30

ExoPlayer 自适应流切换分析

二、基础知识 前言的内容对于初学ExoPlayer开发者而言还是有些抽象,下面我们梳理一ExoPlayer的关键类,方便理解本篇内容。...MediaSource 媒体源:ExoPlayer,得益于对DataSource抽象出了MediaSource,使得ExoPlayer多路流管理方面更加灵活方便。...SeekPoint:ExoPlayer,SeekPoint 往往是IDR帧即将开始的位置。...通过原理图我们可以了解到以下信息: 默认情况,自适应流的切换不需要查找SeekPoint,而是通过选择下一个分片实现。 默认情况,自适应流通过网速检测实现了分片切换。...答案是否定的,因为MergingMediaSource合并的是完整的资源,使用过程并不会调用TrackSelection相关方法,当然ExoPlayer也没有实现资源的动态分片。

1K30

追根溯源解杂音之谜,臻于至善得完美音质

一、问题背景与分析 不久前,团队发现其Android平台App播放MV视频《凤凰花开的路口》,会带有如电流声一般的杂音,这影响了用户体验。...研发同学初步定位,发现有如下特征: Android平台杂音问题必现; iOS、PC平台能正常播放,没有噪音。。 然而,各平台都是统一用HLS格式播放,即源头都是一样的。...对于该问题,我们的定位思路如下: 梳理视频播放流程; 找到切入排查。...音频解码: audio_thread对audioq的数据进行decoder_decode_frame解码; 解码后的帧AVFrame存放到sampq; 音频播放: aout_thread_n,...三、问题分解与切入 梳理出播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题; 数据读取是否有问题; 音频解码逻辑是否有问题; AudioTrack的设置是否有问题

80900
领券