AppCast URI投应用跳转协议
| 天下| 2025-07-08
【流媒体网】摘要:AppCast协议实现跨设备投屏通信,通过URI解析映射表精准拉起电视端应用。

  AppCast是一种用于不同设备间互相拉起和通信的协议,目前主要应用于移动端与电视端之间的投屏和通信。它将用户意图(Intent)封装为结构化 URI,电视端解析后执行相应应用操作,如启动应用、跳转页面、播放内容等。这个协议是之前《让大小屏互动更有趣的超级投屏协议(DLNA扩展)》的扩展升级。

  协议格式

  appcast://<appid>/<action>?<query_params>

  appid支持方式

  1. 使用应用包名

  示例:

  appcast://com.example.video/play?vid=abc123

  电视端直接使用该包名构建 Intent 并启动对应应用:

  Intent().setComponent(ComponentName("com.example.video", "com.example.video.MainActivity"))

  2. 使用 appid(用于跨品牌、平台统一识别)

  很多情况下,相同应用在不同渠道下包名并不一致,所以这里采用appid做为映射表来寻找真实跳转包名。

  示例:

  appcast://videoApp/play?vid=abc123

  电视端(或者服务端)会维护一个映射表:

  {  "videoApp": {    "packageName": "com.tencent.qqlive.tv",    "launchActivity": "com.tencent.qqlive.tv.MainActivity"  }}

  解析 appid 后构建对应包名和 Activity 的 Intent 启动应用。

  示例用法

  电视端解析流程

  解析 URI 字符串

  识别 appid 是包名还是 appid

  如为 appid,则查找注册映射表,获取实际包名与启动 Activity

  构建并启动 Intent,同时附带参数

  进入目标应用后根据 action + query 执行页面跳转或播放逻辑

  典型场景

  B站手机app点击“投屏”按钮,B站电视端被拉起,播放B站手机端“投屏”过来的视频。

  协议历史:

  让大小屏互动更有趣的超级投屏协议(DLNA扩展)

  优化投屏服务的建议标准:DLNA代理

责任编辑:凌美

分享到:
版权声明:凡注明来源“流媒体网”的文章,版权均属流媒体网所有,转载需注明出处。非本站出处的文章为转载,观点供业内参考,不代表本站观点。文中图片均来源于网络收集整理,仅供学习交流,版权归原作者所有。如涉及侵权,请及时联系我们删除!