如果您使用 getUserMedia()
或 WebRTC,则可能需要调整代码
(适用于 Chrome 45 及更高版本)。
MediaStream API 表示 同步媒体流。例如,从相机获取的视频流 麦克风输入已同步视频轨道和音轨。每个轨道 以 MediaStreamTrack。 (不要与 <track> 元素混淆!)
Chrome 45 中废弃了 3 项 MediaStream
:
MediaStream.ended
MediaStream.label
MediaStream.stop()
同时添加了两项功能:
MediaStream.active
MediaStreamTrack.stop()
这些测试需要进行以下更改:
- 使用
MediaStream.active
检查MediaStream
是否为流式传输,而非MediaStream.ended
。 - 使用
MediaStreamTrack.stop()
(而非MediaStream.stop()
)停止流式传输。 - 如果您需要
MediaStream
的唯一标识符,请使用MediaStream.id
,而不是MediaStream.label
。MediaStreamTrack.label
为数据流提供简单易懂的源设备名称,例如FaceTime 高清摄像头(内置)(05ac:8510)。
您可以查看实际操作过程:在以下位置打开 simpl.info/gum:
Chrome(在带有摄像头的设备上)并查看 Chrome 开发者工具控制台。通过
传递到 getUserMedia()
回调的 MediaStream 对象 stream
演示处于全局范围内,因此您可以从控制台进行检查。致电
stream.getTracks()[0]
,查看此信息流的MediaStreamTrack
。
Stop(),已结束且有效
媒体捕获和流 W3C 工作组讨论将新曲目添加到 MediaStream
时发生的问题,
以及是否结束了空的 MediaStream
,他们意识到
在 MediaStream
上实现 ended
的方法不合理(例如“永不重新开始”)。在 HTML5 的其他部分中,“结束”表示“已经结束,
永不恢复”。“有效”则不会产生任何影响:无效的视频流
再次变为有效状态,例如,如果向其中添加了新轨道。工作组没有使属性和功能混乱,而是决定
移除它。
以下示例展示了如何使用“MediaStream.active”查看 Deployment 的 信息流:
var gumStream;
navigator.getUserMedia({audio: false, video: true},
function(stream) {
gumStream = stream;
// ...
},
function(error) {
console.log('getUserMedia() error', error);
});
// …
if (gumStream.active) {
// do something with the stream
}
从 MediaStream
中移除 stop()
不会移除任何实际功能:
因此必须在 Google Cloud 上
MediaStreamTrack
。在 MediaStreamTrack
上改用 stop()
:
navigator.getUserMedia({audio: false, video: true},
function(stream) {
// can also use getAudioTracks() or getVideoTracks()
var track = stream.getTracks()[0]; // if only one media track
// ...
track.stop();
},
function(error){
console.log('getUserMedia() error', error);
});
标签
事实证明,没有人明确这个属性的用途!
MediaStream.label
已添加到规范的第一个版本中,但没人知道
label
的用途我们也不太清楚在直播时“label
”发生了什么
已通过RTCPeerConnection
发送。
W3C 工作组提出过这个问题,但无人想要,所以他们移除了它。
重申一下:MediaStream.id
提供
MediaStream
和 MediaStreamTrack.label
提供来源的名称
例如摄像头或麦克风的类型。
有关MediaStream
和MediaStreamTrack
的更多信息已可供查看
Mozilla 开发者网络,以及
HTML5 Rocks 很好地介绍了getUserMedia()
捕获音频与视频。
我们一如既往地感谢您就 Chrome 变更提供反馈意见。您可以点击此处和此处关注与弃用相关的 bug,并在实现意图中找到更多讨论和详情。