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

苦等多年!Compose 终于迎来原生 Media3 播放器

本文首发于公众号“Android技术圈HPro”前两天Google 正式发布了Media3 1.10。对开发者来说最炸的莫不过Compose终于有自己的播放器了Compose 播放器来了过去一提 Compose 播放器很多团队的真实状态其实都差不多。要么继续用PlayerView外面包一层AndroidView()要么自己把内容层、控制层、进度条、手势和倍速按钮一块一块拼出来。问题不是做不到而是很费。尤其是当你既想保留 Compose 的声明式写法又想让界面更接近 Material 3 风格时工作量很容易失控。这次Media3 1.10在media3-ui-compose-material3上继续扩模块并新增了一个可直接上手的Player Composable。官方给它的定位很明确把内容显示和可定制的播放控制组合起来先给你一套开箱可用的现代播放器骨架。同时这版还补了几个很关键的小部件•ProgressSlider支持拖拽和点击 seek•PlaybackSpeedControl做倍速管理•PlaybackSpeedToggleButton提供 Material 3 风格的倍速切换按钮这件事真正有价值的地方不是“少写几个控件”。而是团队终于可以先拿到一套官方 Compose 播放器底座再决定哪些地方自己定制而不是从零开始手搓一整套媒体交互层。如果你只是想先把依赖拉起来最小升级可以先这样配implementation(androidx.media3:media3-exoplayer:1.10.0)implementation(androidx.media3:media3-ui-compose:1.10.0)implementation(androidx.media3:media3-ui-compose-material3:1.10.0)如果你们现在还停留在PlayerView Compose 包壳的过渡方案这版已经值得单独拉一个分支试一轮。你们更想要官方接下来先补字幕、轨道选择还是更细粒度的播放器插槽我觉得这会直接决定 Media3 Compose 这条线成熟得有多快。性能提升很多版本发布喜欢讲新能力但业务里真正要命的往往不是“有没有新 API”而是“这个资源到底播不播得出来”“出错了能不能兜住”“高负载时还能不能稳一点”。Media3 1.10在播放层补的很多就是这种更贴近实战的问题。先看格式支持。这次 ExoPlayer 新增了对MP4容器中Dolby Vision Profile 10和VVCtrack 提取的支持decoder_mpegh扩展加入了MPEG-H UI managerIAMF扩展也更顺滑地支持双耳输出并且能借助 AndroidSpatializer更好匹配扬声器布局。这几项放在一起看信号很清楚ExoPlayer 不是只在补“能不能播”而是在继续往更复杂、更高规格的媒体场景靠。除此之外这版还做了几件非常工程化的改进• 广告播放链路继续提升可靠性• HLS interstitial 更好支持X-PLAYOUT-LIMIT和X-SNAP• HLS 遇到加载错误时如果有不同 location 的冗余流可以做 location fallback•MediaSessionService现在继承LifecycleService服务生命周期管理会自然很多还有一个我很在意的小实验能力官方开始支持用更高效的方式调度核心播放循环。如果你们有多实例播放、长列表视频预览、后台音频或直播场景这个方向值得马上盯住。试验开关也很直接val playerExoPlayer.Builder(context).experimentalSetDynamicSchedulingEnabled(true).build()它现在还是实验能力但方向已经很明确了。Media3 今年一个重点不只是让播放器“能跑起来”而是让播放器“跑得更有效率”。如果你们团队最近正好在排查掉帧、发热、功耗或者复杂 HLS 兼容问题这段更新比表面上看更值钱。倍速导出这件事终于更稳了做媒体编辑的人都知道倍速从来不只是把数值改成1.25x或1.5x那么简单。一旦进入导出链路帧率、输出体积、处理性能很快就会互相牵制。很多时候你以为自己只是做了一个“调速度”的功能最后踩到的却是导出体积异常、处理时间拉长或者成片表现不稳定。这次Transformer的改动不花哨但非常实用。EditedMediaItem.Builder.setFrameRate()现在可以用来设置视频的最大输出帧率在和setSpeed()配合时尤其有价值。一个很实用的写法大概就是这样val editedItemEditedMediaItem.Builder(mediaItem).setSpeed(1.5f).setFrameRate(30).build()如果你们在做短视频剪辑、模板导出、运动视频快放或者任何“用户会频繁改速度”的编辑场景这个点建议直接转给负责导出链路的同学。因为它解决的不是 API 好不好看而是倍速导出最容易出事的那个位置终于有了更明确的控制杆。写在最后要不要升级我的建议很简单• 正在做 Compose 播放器建议尽快开分支验证• 业务里有复杂格式、HLS、广告、空间音频建议安排升级评估• 正在做导出或剪辑链路至少把Transformer的帧率控制测一轮• 如果当前项目改动窗口很小可以先观察但没必要忽略这版你们团队现在最痛的是播放器 UI、格式兼容还是视频导出[#Android](javascript: [#Media3](javascript: [#ExoPlayer](javascript: [#Compose](javascript: [#音视频开发](javascript:

相关文章:

苦等多年!Compose 终于迎来原生 Media3 播放器

本文首发于公众号“Android技术圈HPro”前两天,Google 正式发布了 Media3 1.10。 对开发者来说最炸的莫不过Compose终于有自己的播放器了! Compose 播放器来了 过去一提 Compose 播放器,很多团队的真实状态其实都差不多。 要么继续用 PlayerV…...

ML307R编译环境搭建:从官方文档到实战避坑指南

1. 为什么需要这份实战指南? 第一次接触ML307R开发板时,我按照官方文档搭建编译环境,结果花了整整两天时间才搞定。官方文档虽然简洁,但很多关键细节都没提到,比如Python版本选择、环境变量配置、依赖库安装等。这些问…...

Amlogic S9xxx Armbian开源项目:让旧电视盒子重获新生的全能解决方案

Amlogic S9xxx Armbian开源项目:让旧电视盒子重获新生的全能解决方案 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s…...

键盘鼠标可视化:让你的操作在屏幕上“跳起舞来“的终极指南

键盘鼠标可视化:让你的操作在屏幕上"跳起舞来"的终极指南 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and 🖱️ mouse actions in real-time. 项目地址: https://gitcode.com/gh_mir…...

“听劝!”预算1k内吉他别瞎买:雅马哈/布洛克/费森横评,这款单板琴让我惊掉下巴!

准备买第一把吉他了,是不是既兴奋又有点慌?面对琳琅满目的品牌和从几百到几千的价格,心里直打鼓: 太便宜的是不是“烧火棍”?太贵了又怕自己坚持不下去浪费钱。 更怕的是,花了钱买回家,发现声音…...

探索League Akari:基于LCU API的模块化英雄联盟客户端工具集

探索League Akari:基于LCU API的模块化英雄联盟客户端工具集 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一个基…...

Arduino实战:如何用旋转编码器控制你的项目(附方向判断代码)

Arduino实战:旋转编码器方向判断与项目集成指南 引言 在创客和电子爱好者的世界里,旋转编码器就像是一个神奇的"旋钮",它能把你的物理转动动作转化为数字信号。想象一下,通过简单的旋转就能精确控制音量大小、菜单选择…...

Figma中文插件:设计师必备的界面汉化神器,让设计效率提升50%

Figma中文插件:设计师必备的界面汉化神器,让设计效率提升50% 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而苦恼吗?FigmaCN…...

终极指南:如何免费升级老旧Mac到最新macOS系统

终极指南:如何免费升级老旧Mac到最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款革命性的开源工具&a…...

ComfyUI BrushNet终极指南:如何快速实现高质量AI图像修复与扩展

ComfyUI BrushNet终极指南:如何快速实现高质量AI图像修复与扩展 【免费下载链接】ComfyUI-BrushNet ComfyUI BrushNet nodes 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-BrushNet ComfyUI BrushNet 是一款革命性的AI图像修复和扩展插件&#xff0…...

Flowise AI工作流安全通关手册:从零基础入门到攻防专家,全链路守住你的AI核心资产

2026年4月,全球AI圈与网络安全界同步爆发了一场震动行业的大规模攻击事件:黑客利用开源AI工作流编排平台Flowise的CVE-2025-59528满分高危漏洞,对全球公网暴露的上万个AI工作流实例发起无差别攻击。短短一周内,数千个企业与开发者…...

Conan实战指南:从零搭建私有C++依赖仓库

1. 为什么C团队需要私有依赖仓库 在C开发领域,依赖管理一直是个令人头疼的问题。我见过太多团队在项目启动时,把大量时间花在配置第三方库上。有人直接把第三方库源码塞进项目目录,有人要求每个开发者手动安装系统级依赖,还有人写…...

UE5新手必看:新建项目就白屏?三步搞定PostProcessVolume曝光问题

UE5新手避坑指南:三招解决新建项目白屏问题 第一次打开虚幻引擎5(UE5)创建的项目,满心期待看到华丽的默认场景,结果眼前却是一片刺眼的白光——这种"开门黑"体验让不少新手开发者瞬间懵圈。别急着怀疑自己的…...

nRF Connect 介绍和操作入门

nRF Connect 介绍和操作入门 一、nRF Connect 简介 nRF Connect 是由 Nordic Semiconductor 开发的一套强大的低功耗蓝牙(BLE)开发工具集合,主要面向开发者、测试人员以及蓝牙技术爱好者。它分为三个主要版本: 1.1 主要版本版本平…...

有限状态自动机(DFA)在文本处理中的高效应用与实现

1. 有限状态自动机(DFA)到底是什么? 第一次听到"有限状态自动机"这个词时,我也是一头雾水。后来在实际项目中用了几次才发现,它其实就是个"智能开关"——根据不同的输入条件,在预设的几…...

深夜告警炸裂?这份Linux故障排查“作战地图”请收好诺

先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...

RMBG-1.4实战指南:高精度图像抠图开源模型快速上手

RMBG-1.4实战指南:高精度图像抠图开源模型快速上手 1. 为什么你需要RMBG-1.4? 如果你曾经为了抠一张图,在Photoshop里用钢笔工具一点点描边,或者用魔棒工具反复调整容差,那么RMBG-1.4将会彻底改变你的工作方式。 想…...

Intv_AI_MK11人工智能(AI)入门:核心概念图解与首个AI应用创建

Intv_AI_MK11人工智能(AI)入门:核心概念图解与首个AI应用创建 1. 人工智能初体验:从零开始理解AI 想象一下,你正在教一个小朋友认识动物。刚开始,他可能分不清猫和狗的区别,但随着你不断展示图…...

MedGemma-X新手教程:一键搭建AI放射科数字助手

MedGemma-X新手教程:一键搭建AI放射科数字助手 1. 为什么你需要一个能“看懂”X光片的AI助手? 想象一下这个场景:深夜的放射科值班室,你面前堆着几十张待阅的胸片,眼睛已经有些干涩。其中一张片子,右肺中…...

智谱开源视觉模型GLM-4.6V-Flash-WEB效果实测:识别准确,回答智能,小白可上手

智谱开源视觉模型GLM-4.6V-Flash-WEB效果实测:识别准确,回答智能,小白可上手 1. 开箱即用的视觉大模型体验 在AI技术快速发展的今天,一个真正"能用"的视觉大模型远比那些只能在论文里看到的模型更有价值。GLM-4.6V-Fl…...

iOS 26.4越狱深度解析:从技术原理到实战应用的全面指南

iOS 26.4越狱深度解析:从技术原理到实战应用的全面指南 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder 👇 项目地址…...

终极指南:ESLyric-LyricsSource三大逐字歌词格式深度解析与实战部署

终极指南:ESLyric-LyricsSource三大逐字歌词格式深度解析与实战部署 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource ESLyric-LyricsSource是专…...

卷积神经网络原理详解:使用Phi-3-mini进行交互式学习与代码生成

卷积神经网络原理详解:使用Phi-3-mini进行交互式学习与代码生成 1. 引言:为什么选择CNN作为深度学习入门 卷积神经网络(CNN)是计算机视觉领域的基石技术,从人脸识别到自动驾驶都离不开它。但对于初学者来说&#xff0c…...

网盘下载限速终结者:八大平台一键极速下载的完整解决方案

网盘下载限速终结者:八大平台一键极速下载的完整解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...

Qwen3-0.6B-FP8实战教程:支持中文长上下文的本地化对话微调准备

Qwen3-0.6B-FP8实战教程:支持中文长上下文的本地化对话微调准备 想在自己的电脑上跑一个能聊天的AI,但又担心显卡太差、内存不够?今天给大家介绍一个神器——基于Qwen3-0.6B-FP8模型的本地对话工具。它只有6亿参数,经过FP8量化后…...

百度网盘Mac版SVIP特权完整解锁方案:告别限速困扰

百度网盘Mac版SVIP特权完整解锁方案:告别限速困扰 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版缓慢的下载速度而烦恼…...

SteamCleaner终极指南:一键释放60GB硬盘空间,让游戏电脑重获新生

SteamCleaner终极指南:一键释放60GB硬盘空间,让游戏电脑重获新生 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址: https…...

解放双手:TMSpeech让Windows电脑实时语音转文字变得如此简单

解放双手:TMSpeech让Windows电脑实时语音转文字变得如此简单 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录而烦恼?在线课程笔记让你手忙脚乱?TMSpeech这款完全免…...

详细介绍一下C++多线程同步之条件变量的典型用法

C 多线程同步:条件变量(std::condition_variable)详细用法 完整示例这是 C11 原生多线程最常用、最高效的同步机制,专门解决:线程需要等待某个条件满足才能继续执行的场景。一、核心概念(必须懂&#xff0…...

Python 测验

Python 测验 引言 Python 作为一种高级编程语言,因其简洁易读、功能强大等特点,在编程领域备受青睐。为了帮助读者检验自己对 Python 的掌握程度,本文特此推出一份 Python 测验。本测验涵盖了 Python 的基础知识、常用库以及高级特性,旨在帮助读者全面了解 Python 的应用…...