2017-06-19 134 views
1

如何在JavaScript中获取流对象的当前流时间?javascript getUserMedia获取媒体流时间

navigator.mediaDevices.getUserMedia(constraints) .then(function(stream) { console.log("get stream time here") })

是否有任何可能的方式来获得流时间?

回答

4

你可以使用currentTime(使用fiddle使getUserMedia工作)的播放时间:

var wait = ms => new Promise(resolve => setTimeout(resolve, ms)); 
 

 
(async() => { 
 
    video.srcObject = await navigator.mediaDevices.getUserMedia({video: true}); 
 
    while (true) { 
 
    console.log(video.currentTime); 
 
    await wait(100); 
 
    } 
 
})().catch(e => console.log(e));
<video id="video" width="160" height="120" autoplay></video><br> 
 
<div id="div"></div>

没有内在流时间不挂钩它到一个接收器和玩它。例如。如果您迟到加入WebRTC视频通话,那么会议开始时就没有时间通知您。

+0

请注意,不同的浏览器似乎以不同的方式解释MediaStreams的currentTime。在Chrome浏览器中,我会看到从网络摄像头的每帧中增加的时间。在Firefox中我获得了不同的行为,currentTime更频繁地增加。所以在Chrome中,我可以推断摄像头的真实帧率,在Firefox中我不能。 –