Repository navigation
feat: bridge CarPlay playback and seeking to browser Media Session - #37
Merged
Merged
Conversation
fython
commented
Oct 23, 2026
fython
left a comment
Owner
Author
There was a problem hiding this comment.
Code Review 已完成(本次实现的自审,审查提交 e5de83c)。
发现并修复 1 个 P2 问题:连续相对跳转时,传输回执可能先于 iPhone 的位置回报到达。原代码在回执后清空目标,导致两次“前进 10 秒”重复发送同一位置。修复后短暂保留目标用于连续操作,手机回报、失败、超时或身份边界会将其清除,显示进度仍由手机决定。新增测试先复现 30000 != 40000,再验证修复,以及回报确认、失败和超时行为。
复核覆盖:浏览器 API 缺失/部分支持、毫秒编码及能力声明、暂停时跳转、最终拖动请求保留、配对权限复查、controller/连接/曲目隔离、iAP2 背压队列中过期请求丢弃、封面 capability 生命周期,以及与主线 GPS 功能的整合。目前未发现其他需要修改的阻塞性问题。
167 项 Node 测试、真实 Chromium 验证、shared 全量 427 项测试已通过。common 全量测试和 Android 打包/lint 仍在本地运行,GitHub CI 也已启动;最终结果会补充到 PR 描述。
实机验收尚未完成:目标车机的系统媒体卡片/按键、手机应用实际 seek 与进度回报、跳转后的声音连续性。自动化通过不代表这些硬件行为已验证。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
已配对车机浏览器此前无法将 CarPlay 的歌曲信息、播放状态和控制接入系统媒体会话。本 PR 通过 WebSocket 推送 iPhone 的 Now Playing 状态,并用 Web Media Session API 发布标题、歌手、专辑、封面、播放状态和进度,支持播放/暂停/切歌及按手机能力启用的进度跳转。
0x5003参数0发送 uint32 毫秒位置,依据 LIVI、Nocturne 和 MacPlay 的公开实现;有线/无线 identification 同步声明能力。9490523,保留浏览器 GPS 转发及连接生命周期。审查发现并修复连续相对跳转在回执先于进度回报时重复落到原目标的问题。验证(最终提交
e5de83c)::mobile:lintDebug通过:0 错误、18 警告。:mobile:assembleDebug和:common:assembleDebugAndroidTest通过;已核对两个 APK 内的媒体脚本与最终源码一致。instrumentation APK 已构建,本地未执行设备 instrumentation。git diff --check通过。GitHub Actions 的构建和 Android 模拟器检查见本 PR 的 Checks。Code Review 记录:本次实现自审,已复现并修复 1 个 P2 连续相对跳转问题;最终复核未发现其他阻塞性问题。
尚未进行车机/iPhone 实机验收:系统媒体卡片与实体按键、手机音乐应用的 seek 执行和进度回报、跳转后本地/浏览器声音连续性仍需确认。协议与验证记录见
docs/MEDIA_SESSION.md和docs/VALIDATION.md。