当前位置: 首页 > news >正文

Android多媒体——同步Video显示时间(二十二)

        上一篇文章我们介绍了 Audio 锚点的计算及更新流程,这里我们继续来看一下 Video 显示时间的获取及同步流程。在音视频同步(AV Sync)中,Video 显示时间的准确性直接决定了画面的流畅性。与 Audio 类似,Video 的同步也依赖于时间戳管理、渲染控制和时钟同步。

一、Video显示时间获取

        AVsync 的目的是获得Buffer显示的时间(buffer 的系统时间)。我们可以根据媒体时间和系统时间的线性关系计算出显示的时间:

(mediaTimeUs - anchorTimeMediaUs) = PlaybackRate*(nowUs - anchorTimeMediaUs)

        这里我们回到 onDrainVideoQueue() 函数,其中会通过 getRealTimeUs() 函数计算出当前 Buffer 显示的时间 realTimeUs(系统时间)。

1、NuPlayerRenderer.cpp

源码位置:/frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp

getRealTimeUs

int64_t NuPlayer::Renderer::getRealTimeU
http://www.dtcms.com/a/243114.html

相关文章:

  • 【android bluetooth 框架分析 04】【bt-framework 层详解 4】【AdapterState介绍】
  • git撤回commit
  • 流批一体向量化引擎Flex
  • 前端面试六之axios
  • 黑马教程强化day2-2
  • markdown文本转换时序图
  • 深入理解 TCP 套接字:Socket 编程入门教程
  • 数组方法_push()/pop()/数组方法_shift()/unshift()
  • 滚动—横向滚动时,如何直接滚动到对应的内容板块
  • `document.domain` API 的废弃与现代 Web 开发的转型
  • 从 8 秒到 1 秒:前端性能优化的 12 个关键操作
  • Maven 构建性能优化深度剖析:原理、策略与实践
  • CKA考试知识点分享(10)---NetworkPolicy
  • 深入浅出:C++深拷贝与浅拷贝
  • Web防火墙深度实战:从漏洞修补到CC攻击防御
  • 重拾前端基础知识:CSS预处理器
  • 基于AI智能体的医疗AI工具库构建路径分析
  • Python爬虫(54)Python数据治理全攻略:从爬虫清洗到NLP情感分析的实战演进
  • 第七章: SEO与渲染方式 三
  • C#接口代码记录
  • 第七章: SEO与渲染方式
  • Scrapy爬虫框架:数据采集的瑞士军刀(附实战避坑指南)!!!
  • ( github actions + workflow 01 ) 实现爬虫自动化,每2小时爬取一次澎湃新闻
  • MyBatis实战指南(七)MyBatis缓存机制
  • Python毕业设计226—基于python+爬虫+html的豆瓣影视数据可视化系统(源代码+数据库+万字论文)
  • Linux:多线程---线程控制(线程创建线程等待线程终止)
  • AJAX、Axios 与 Fetch:现代前端数据请求技术对比
  • Linux Swap分区应该禁用吗?深入辨析其作用与性能优化
  • React 状态管理指南:Redux 原理与优化策略
  • React删除评论逻辑:1、客户端立即更新UI(乐观更新)2、后台调用删除评论API