HTML5 音频与视频技术深度解析
1. 本地自视图视频与媒体片段 URI
本地自视图视频的音频通道是关闭的。爱立信为此创建了一个带有“#video”片段的特定视频 URI,这样就能从媒体资源中单独提取视频轨道并进行播放。媒体片段 URI 可用于此场景,它已经为处理媒体资源中的特定轨道提供了规范。若要从视听资源中仅提取视频轨道,需要以下形式的 URI 片段:“#track=video”。不过,目前任何已发布的浏览器都未默认实现此功能,所以现阶段不要期望 <video>
元素具备该功能。
爱立信在一个打了补丁的 WebKit 版本上进行了实验,展示了这项技术的惊人潜力。其基于 WebSocket 的视频聊天演示截图,展示了该技术在 HTML5 中的应用效果,甚至还对视频应用了 CSS3 变换,以充分展示其潜力。
2. ConnectionPeer API
WebSocket 在多对多通信方面存在一定局限性,因为数据需通过中间服务器复制给其他所有人。在多人协作的应用场景中,这种方式避免了构建 n×n 的连接网络,只需与单个服务器建立 n 个连接。但在仅涉及两个对等方的情况下,无需中间 Web 服务器的直接连接会更节省资源。
WHATWG 正在开发的 ConnectionPeer API 有望提供这种功能。该 API 目前还很不成熟,其基本思路是利用第三方服务器获取对方信息,从而建立直接连接。在连接建立过程中,双方会交换各自的配置,就协议达成一致,并共享各自的 IP 地址和其他必要细节。连接建立后,将具备以下功能:
- sendText()
:发送纯文本