Miracast 技术原理及实现方案 Miracast 技术是 Wi-Fi 联盟(Wi-Fi Alliance)对支持 Wi-Fi Display 功能的设备的认证名称。通过 Miracast 认证的设备将在最大程度内保持对 Wi-Fi Display 功能的支持和兼容。Miracast 的 Android 实现涉及到系统的多个模块,包括 MediaPlayerService、SurfaceFlinger、WindowManagerService、DisplayManagerService 和 WifiService 等。 1. MediaPlayerService 及相关模块 MediaPlayerService 是 Miracast 实现的核心模块之一,负责处理音频和视频流的传输和解码。MediaPlayerService 在 Miracast 中扮演着关键角色,因为 Miracast 本身就牵扯到 RTP/RTSP 及相应的编解码技术。 2. SurfaceFlinger 及相关模块 SurfaceFlinger 的作用是将各层 UI 数据混屏并投递到显示设备中去显示。现在,SurfaceFlinger 将支持多个显示设备。而支持 Miracast 的远端设备也做为一个独立的显示设备存在于系统中。 3. WindowManagerService 及相关模块 WindowManagerService 用于管理系统中各个 UI 层的位置和属性。由于并非所有的 UI 层都会通过 Miracast 投递到远端设备上。例如手机中的视频可投递到远端设备上去显示,但假如在播放过程中,突然弹出一个密码输入框(可能是某个后台应用程序发起的),则这个密码输入框就不能投递到远端设备上去显示。所以,WindowManagerService 也需要修改以适应 Miracast 的需要。 4. DisplayManagerService 及相关模块 DisplayManagerService 服务是 Android 4.2 新增的,用于管理系统中所有的 Display 设备。DisplayManagerService 负责管理 Miracast 中的显示设备,确保 Miracast 的显示设备能够正确地投递到远端设备上。 5. WifiService 及相关模块 WifiService 负责管理 Wi-Fi 连接和 Wi-Fi Display 协议的实现。WifiService 涉及到 WifiP2P 技术、RTSP 技术、流媒体技术以及音视频编解码相关的技术流程。 WifiDisplay 协议流程: 1. WFD Device Discovery(WFD 设备发现) 2. WFD Service Discovery (Optional)(WFD 服务发现(可选)) 3. Device Selection(设备选择) 4. WFD Connection Setup(WFD 连接) 5. WFD Capability Negotiation(WFD 能力协商) 6. WFD Session Establishment(WFD 会话建立) 7. User Input Back Channel Setup (Optional)(UIBC 反向控制) 8. Link Content Protection Setup (Optional)(内容保护,即数据加密) 9. Payload Control(负载控制) 10. WFD Source and WFD Sink standby (Optional) 11. WFD Session Teardown(会话终止) 在 WifiDisplay 协议流程中,WFD 设备通过 wifiP2P 连接后,Sink 端与 Source 端建立 TCP 连接,Sink 端为 Client 而 Source 端为 Server。默认端口为 7236,执行的协议为 RTSP 协议。建立连接后进行 RTSP 协商。步骤 6,协商成功后建立会话;步骤 7,UIBC 通道建立,用于 Sink 端反向控制 Source 端,该步骤为可选实现;步骤 8,对与传输的内容做加密保护(HDCP),步骤 9,开始音频及视频流的传输。
剩余22页未读,继续阅读
- 粉丝: 60
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助