1.1 媒体流
媒体使用Mediastream 接口来管理,通常获取媒体流的方式有如下几种:
*)从摄像头或者话筒获取对象流
*)从屏幕共享获取流对象
*)从 canvas(HTMLCavasElment)内容中获取流对象
*)从媒体元素(HTMLMediaElment)中获取流对象
MediaStream 的定义:
interface Mediastream:EventTarget {
constructor();
constructor(Mediastream stram);
};
1.1.1 构造媒体流
构造函数MediaStream ()可以创建并返回一个新的MediaStream对象,可以创建一个空的媒体流或者复制现有媒体流,也可以创建包含多个指定轨道的媒体流,命令如下:
newstream = new MediaStream();
newstream = new MediaStream(stream); //复制现有媒体流
newstram = new MediaStream(tracks[]) //创建包含多个指定轨道的媒体流
1.1.2 MediaStream 属性
1.active 只读
返回mediastram 的状态,类型为布尔,true 为活跃,false 为不活跃。
2.id 只读
返回meidastrem 的UUID,类型为字符串, 长度为36个字符。
1.1.3 Mediastream 方法
1.addTrack() 方法
改方法向媒体流中加入新的媒体轨道
stream.addTrack(trak) ,参数为MediaStramTrack。
2.clone 方法
返回当前媒体流的副本,副本具有不通且唯一的标识。
const newstream = stream.clone();
const sameId = newstream.id === stream.id? true:false
3.getAudioTrack()方法
const mediaStreamTracks = mediastream.getaudioTracks()
navigator.meidaDevices.getUserMedia({audio:true,video:true})
.then(mediaStream => {
document.queryselector('video').srcObject = mediaStram;
setTimeout(() => {
const tracks = mediaStream.getAudioTracks()tracks[0].stop()},5000)})
4.getvideoTrack()方法()
navigator.meidaDevices.getUserMedia({video:true})
.then(mediaStream => {
document.queryselector('video').srcObject = mediaStram;
const track = mediastream.getVideoTrack()[0];
const imageCapture = new ImageCaptur(track);
return imageCapture;
})
5.getTrackById()方法