上QQ阅读APP看书,第一时间看更新
2.2.1 MediaStreamTrack属性
1. enabled
返回MediaStreamTrack的有效状态,类型为布尔值,值为true表示轨道有效,可以被渲染;值为false表示轨道失效,被渲染时将会出现静音或黑屏。如果媒体轨道连接中断,enabled值仍然可以被改变,但不会生效。
设置enabled值为false可以实现静音效果,与mute方法相同。
代码清单2-9实现了按钮的单击事件,在事件处理函数中控制媒体轨道的暂停和播放。
代码清单2-9 enabled示例
pauseButton.onclick = function(evt) { const newState = !myAudioTrack.enabled; pauseButton.innerHTML = newState ? "Pause" : "Play"; myAudioTrack.enabled = newState; }
2. id只读
返回MediaStreamTrack的UUID值,类型为字符串。
const id = track.id
3. kind只读
返回MediaStreamTrack的内容种类,类型为字符串,返回audio表示轨道内容种类是音频,返回video表示轨道内容种类是视频。
代码清单2-10对kind的种类进行判断并使用console.log打印。
代码清单2-10 kind示例
const type = track.kind; if ( type === 'video' ) { console.log('video track'); } else if ( type === 'audio' ) { console.log('audio track'); }
4. label只读
返回MediaStreamTrack的标签,类型为字符串,表示媒体轨道的来源,比如internal microphone。
label的值可以为空,并且在没有媒体源与媒体轨道连接的情况下会一直为空。当轨道与它的源分离时,label的值不会改变。
const label = track.label
5. muted只读
返回MediaStreamTrack是否处于静音状态,类型为布尔,值为true表示轨道静音,值为false表示轨道未静音。处于静音状态的媒体轨道不能提供媒体数据,当视频轨道处于静音状态时,则会表现为黑屏。
代码清单2-11对媒体轨道数组进行遍历,并统计处于静音状态的媒体轨道数目。
代码清单2-11 muted示例
let mutedCount = 0; trackList.forEach((track) => { if (track.muted) { mutedCount += 1; } });
6. readyState只读
返回MediaStreamTrack的就绪状态,可能的取值如下。
- live:表示输入媒体源已经连接,可以正常提供媒体数据。
- ended:表示输入媒体源处于结束状态,不能再提供新的媒体数据。
const state = track.readyState