From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/api/mediastream/active/index.html | 59 ++++++++++++ files/zh-cn/web/api/mediastream/clone/index.html | 43 +++++++++ .../web/api/mediastream/getaudiotracks/index.html | 78 ++++++++++++++++ .../zh-cn/web/api/mediastream/gettracks/index.html | 65 +++++++++++++ files/zh-cn/web/api/mediastream/id/index.html | 99 ++++++++++++++++++++ files/zh-cn/web/api/mediastream/index.html | 101 +++++++++++++++++++++ .../web/api/mediastream/mediastream/index.html | 59 ++++++++++++ 7 files changed, 504 insertions(+) create mode 100644 files/zh-cn/web/api/mediastream/active/index.html create mode 100644 files/zh-cn/web/api/mediastream/clone/index.html create mode 100644 files/zh-cn/web/api/mediastream/getaudiotracks/index.html create mode 100644 files/zh-cn/web/api/mediastream/gettracks/index.html create mode 100644 files/zh-cn/web/api/mediastream/id/index.html create mode 100644 files/zh-cn/web/api/mediastream/index.html create mode 100644 files/zh-cn/web/api/mediastream/mediastream/index.html (limited to 'files/zh-cn/web/api/mediastream') diff --git a/files/zh-cn/web/api/mediastream/active/index.html b/files/zh-cn/web/api/mediastream/active/index.html new file mode 100644 index 0000000000..904001fd9c --- /dev/null +++ b/files/zh-cn/web/api/mediastream/active/index.html @@ -0,0 +1,59 @@ +--- +title: active +slug: Web/API/MediaStream/active +tags: + - 参考 + - 媒体流 + - 属性 + - 接口 + - 活动 +translation_of: Web/API/MediaStream/active +--- +

{{APIRef("Media Capture and Streams")}}

+ +

active 是 {{domxref("MediaStream")}} 接口的只读属性,返回布尔值,如果媒体流当前为活动状态时,返回 true ,否则返回 false。 至少有一条 {{domxref("MediaStreamTrack")}} 的媒体流不是{{domxref("MediaStreamTrack.ended")}} 状态时才认为是 活动的 。当所有轨道关闭时,媒体流的属性置为 false。

+ +

语法

+ +
var isActive = MediaStream.active;
+ +

Value

+ +

布尔值,当媒体流当前为活动状态时为 true ; 否则为 false.

+ +

样例

+ +

在这个例子中,使用{{domxref("MediaDevices.getUserMedia", "getUserMedia()")}}请求源为用户本地摄像机和麦克风的一条新流,当流可用时(即满足返回的{{jsxref("Promise")}}),根据该流当前是否处于活动状态来更新页面上的按钮。

+ +
var promise = navigator.mediaDevices.getUserMedia({
+  audio: true,
+  video: true
+});
+
+promise.then(function(stream) {
+  var startBtn = document.querySelector('#startBtn');
+  startBtn.disabled = stream.active;
+};)
+ +

规格

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Media Capture', '#dom-mediastream-active', 'active')}}{{Spec2('Media Capture')}}Initial definition.
+ +

浏览器兼容

+ + + +

{{Compat("api.MediaStream.active")}}

diff --git a/files/zh-cn/web/api/mediastream/clone/index.html b/files/zh-cn/web/api/mediastream/clone/index.html new file mode 100644 index 0000000000..664ea6ffc6 --- /dev/null +++ b/files/zh-cn/web/api/mediastream/clone/index.html @@ -0,0 +1,43 @@ +--- +title: MediaStream.clone() +slug: Web/API/MediaStream/clone +translation_of: Web/API/MediaStream/clone +--- +

{{APIRef("Media Capture and Streams")}}

+ +

The clone() method of the {{domxref("MediaStream")}} interface creates a duplicate of the MediaStream. This new MediaStream object has a new unique {{domxref("MediaStream.id", "id")}} and contains clones of every {{domxref("MediaStreamTrack")}} contained by the MediaStream on which clone() was called.

+ +

Syntax

+ +
var stream = MediaStream.clone();
+ +

Parameters

+ +

None.

+ +

Return value

+ +

A new {{domxref("MediaStream")}} instance which has a new unique ID and contains clones of every {{domxref("MediaStreamTrack")}} contained by the MediaStream on which clone() was called.

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Media Capture', '#widl-MediaStream-clone-MediaStream', 'MediaStream.clone()')}}{{Spec2('Media Capture')}}Initial definition.
+ +

Browser compatibility

+ + + +

{{Compat("api.MediaStream.clone")}}

diff --git a/files/zh-cn/web/api/mediastream/getaudiotracks/index.html b/files/zh-cn/web/api/mediastream/getaudiotracks/index.html new file mode 100644 index 0000000000..4c7bb6dad1 --- /dev/null +++ b/files/zh-cn/web/api/mediastream/getaudiotracks/index.html @@ -0,0 +1,78 @@ +--- +title: MediaStream.getAudioTracks() +slug: Web/API/MediaStream/getAudioTracks +tags: + - API + - getAudioTracks + - 媒体 + - 媒体流 + - 媒体流 API + - 媒体流轨道 + - 方法 + - 轨道 + - 音频 +translation_of: Web/API/MediaStream/getAudioTracks +--- +

{{APIRef("Media Capture and Streams")}}

+ +

{{domxref("MediaStream")}} 接口下的 getAudioTracks() 方法会返回一个包含 track set 流中所有 {{domxref("MediaStreamTrack.kind")}} 为 audio 的 {{domxref("MediaStreamTrack")}} 对象序列。

+ +

语法

+ +
var mediaStreamTracks = mediaStream.getAudioTracks()
+ +

参数

+ +

+ +

返回值

+ +

{{domxref("MediaStreamTrack")}} 对象数组,包含流中所有的音轨。音轨的 {{domxref("MediaStreamTrack.kind", "kind")}} 值为 audio 。如果流中不包含音轨,则数组为空。

+ +
+

注意:数组中返回的顺序并不是由规范定义的,事实上,每次调用 getAudioTracks() 的结果都可能有所不同。

+
+ +

更早版本的本API中,包含一个用做列表中每个音频类型的 AudioStreamTrack 接口;现在已被合并至 {{domxref("MediaStreamTrack")}} 主接口中。

+ +

示例

+ +

本示例使用 {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} 获取视频流中的网络摄像机的音频和视频,并将媒体流绑定到 {{HTMLElement("video")}} 元素,然后设置一个计时器,计时器到期时会停止在该媒体流中找到的第一个音轨。

+ +
navigator.mediaDevices.getUserMedia({audio: true, video: true})
+.then(mediaStream => {
+  document.querySelector('video').srcObject = mediaStream;
+  // Stop the audio stream after 5 seconds
+  setTimeout(() => {
+    const tracks = mediaStream.getAudioTracks()
+    tracks[0].stop()
+  }, 5000)
+})
+
+ +

说明

+ + + + + + + + + + + + + + + + +
说明状态评论
{{SpecName('Media Capture','#dom-mediastream-getaudiotracks','getAudioTracks()')}}{{Spec2('Media Capture')}}Initial definition.
+ +

浏览器兼容性

+ + + +

{{Compat("api.MediaStream.getAudioTracks")}}

diff --git a/files/zh-cn/web/api/mediastream/gettracks/index.html b/files/zh-cn/web/api/mediastream/gettracks/index.html new file mode 100644 index 0000000000..c47d48473b --- /dev/null +++ b/files/zh-cn/web/api/mediastream/gettracks/index.html @@ -0,0 +1,65 @@ +--- +title: MediaStream.getTracks() +slug: Web/API/MediaStream/getTracks +tags: + - 参考 + - 媒体流 + - 媒体流 API + - 媒体轨道 + - 方法 +translation_of: Web/API/MediaStream/getTracks +--- +

{{APIRef("Media Capture and Streams")}}{{SeeCompatTable}}

+ +

{{domxref("MediaStream")}} 接口的getTracks() 方法会返回一个包含  track set 流中所有 {{domxref("MediaStreamTrack")}}  对象的序列, 序列内容与{{domxref("MediaStreamTrack.kind")}} 无关。

+ +

语法

+ +
var mediaStreamTracks = mediaStream.getTracks()
+ +

参数

+ +

+ +

返回值

+ +

{{domxref("MediaStreamTrack")}} 对象的数组

+ +

示例

+ +
navigator.mediaDevices.getUserMedia({audio: false, video: true})
+.then(mediaStream => {
+  document.querySelector('video').srcObject = mediaStream;
+  // Stop the stream after 5 seconds
+  setTimeout(() => {
+    const tracks = mediaStream.getTracks()
+    tracks[0].stop()
+  }, 5000)
+})
+ +

说明

+ + + + + + + + + + + + + + + + +
说明状态评论
{{SpecName('Media Capture','#dom-mediastream-gettracks','getTracks()')}}{{Spec2('Media Capture')}}Initial definition.
+ +

浏览器支持情况

+ + + +

{{Compat("api.MediaStream.getTracks")}}

diff --git a/files/zh-cn/web/api/mediastream/id/index.html b/files/zh-cn/web/api/mediastream/id/index.html new file mode 100644 index 0000000000..ef5d47c56c --- /dev/null +++ b/files/zh-cn/web/api/mediastream/id/index.html @@ -0,0 +1,99 @@ +--- +title: MediaStream.id +slug: Web/API/MediaStream/id +translation_of: Web/API/MediaStream/id +--- +

{{APIRef("WebRTC")}}

+ +

MediaStream.id 只读属性,一个包含36个字符的 {{domxref("DOMString")}} ,用来作为这个对象的唯一标识符 (GUID) 。

+ +

语法

+ +
var id = mediaStream.id;
+
+ +

示例

+ +
var p = navigator.mediaDevices.getUserMedia({ audio: true, video: true });
+
+p.then(function(stream) {
+   console.log(stream.id);
+};)
+
+ +

规范

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Media Capture', '#widl-MediaStream-id', 'MediaStream.id')}}{{Spec2('Media Capture')}}Initial definition.
+ +

浏览器兼容性

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatUnknown() }}{{CompatVersionUnknown}}{{ CompatGeckoDesktop(41) }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}{{CompatVersionUnknown}}{{ CompatGeckoMobile(41) }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

相关链接

+ + diff --git a/files/zh-cn/web/api/mediastream/index.html b/files/zh-cn/web/api/mediastream/index.html new file mode 100644 index 0000000000..049ea4a3f9 --- /dev/null +++ b/files/zh-cn/web/api/mediastream/index.html @@ -0,0 +1,101 @@ +--- +title: 媒体流(MediaStream) +slug: Web/API/MediaStream +translation_of: Web/API/MediaStream +--- +
{{APIRef("Media Capture and Streams")}}
+ +
MediaStream 接口是一个媒体内容的流.。一个流包含几个轨道,比如视频和音频轨道。
+ +

属性

+ +
+
+ +
+
{{domxref("MediaStream.active")}} {{readonlyinline}}
+
布尔型。如果这个流处于活动状态值为true,反之为false
+
{{domxref("MediaStream.ended")}} {{readonlyInline}}{{obsolete_inline()}}
+
布尔型。如果 {{event("ended (MediaStream)", "ended")}} 事件在这个对象上触发了,也就是说这个流已经被完全读取,值为true。 如果还没有到达这个流的尾部,值为false。
+
+ +
+
{{domxref("MediaStream.id")}} {{readonlyInline}}
+
这是一个包含36个字符的 {{domxref("DOMString")}} ,用来作为这个对象的唯一标识符 (GUID) 。
+
+ +

事件处理

+ +
+
{{domxref("MediaStream.onaddtrack")}}
+
这是{{event("addtrack")}}事件在这个对象上触发时调用的事件处理器[{{domxref("EventHandler")}}],这时一个{{domxref("MediaStreamTrack")}}对象被添加到这个流。
+
{{domxref("MediaStream.onended")}}
+
这是当流终止[{{event("ended (MediaStream)","ended")}}]时触发的事件。
+
{{domxref("MediaStream.onremovetrack")}}
+
这是{{event("removetrack")}}事件在这个对象上触发事调用的事件处理器[{{domxref("EventHandler")}}],这时一个对象从流上移除。
+
+ +

方法

+ +
+
{{domxref("MediaStream.addTrack()")}}
+
存储传入参数 {{domxref("MediaStreamTrack")}} 的一个副本。如果这个轨道已经被添加到了这个媒体流,什么也不会发生; 如果目标轨道为“完成”状态(也就是已经到尾部了),一个INVALID_STATE_RAISE异常会产生。
+
+ +
+
{{domxref("MediaStream.clone()")}}
+
返回这个MediaStream对象的克隆版本。返回的版本会有一个新的ID。
+
返回给定ID的轨道。如果没有参数或者没有指定ID的轨道,将返回null。如果有几个轨道有同一个ID,将返回第一个。
+
+ +
+
{{domxref("MediaStream.getTracks()")}}
+
返回流中所有的{{domxref("MediaStreamTrack")}}列表。
+
+ +
+
{{domxref("MediaStream.getAudioTracks()")}}
+
返回流中kind属性为"audio"的{{domxref("MediaStreamTrack")}}列表。顺序是不确定的,不同浏览器间会有不同,每次调用也有可能不同。
+
+ +
+
{{domxref("MediaStream.getTrackById()")}}
+
返回给定ID的轨道。如果没有参数或者没有指定ID的轨道,将返回null。如果有几个轨道有同一个ID,将返回第一个。
+
+ +
+
{{domxref("MediaStream.getVideoTracks()")}}
+
返回流中kind属性为"video"的{{domxref("MediaStreamTrack")}}列表。顺序是不确定的,不同浏览器间会有不同,每次调用也有可能不同。
+
+ +
+
{{domxref("MediaStream.removeTrack()")}}
+
移除作为参数传入的 {{domxref("MediaStreamTrack")}}。 如果这个轨道不在MediaStream对象中什么也不会发生; 如果目标轨道为“完成”状态,一个INVALID_STATE_RAISE异常会产生。
+
+ +

说明

+ + + + + + + + + + + + + + +
说明状态评论
{{SpecName('Media Capture', '#mediastream', 'MediaStream')}}{{Spec2('Media Capture')}}
+ +

浏览器支持情况

+ +
{{Compat("api.MediaStream")}}
+ +

相关内容

+ + diff --git a/files/zh-cn/web/api/mediastream/mediastream/index.html b/files/zh-cn/web/api/mediastream/mediastream/index.html new file mode 100644 index 0000000000..1775c27fbb --- /dev/null +++ b/files/zh-cn/web/api/mediastream/mediastream/index.html @@ -0,0 +1,59 @@ +--- +title: MediaStream() +slug: Web/API/MediaStream/MediaStream +translation_of: Web/API/MediaStream/MediaStream +--- +
{{APIRef("Media Capture and Streams")}}
+ +

 构造函数MediaStream() 返回新建的 {{domxref("MediaStream")}} 实例,该实例作为媒体流的内容的集合载体,其可能包含多个媒体数据轨,每个数据轨则由一个 {{domxref("MediaStreamTrack")}} 对象表示。如果给出相应参数,在指定的数据轨则被添加到新的流中。否则,该流中不包含任何数据轨。

+ +

语法

+ +
newStream = new MediaStream();
+newStream = new MediaStream(stream);
+newStream = new MediaStream(tracks[]);
+
+ +

参数

+ +
+
stream
+
这是另一个 {{domxref("MediaStream")}} 对象,其数据轨会被自动添加到新建的流中。且这些数据轨不会从原流中移除,即变成了两条流共享的数据。
+
tracks
+
这是 {{domxref("MediaStreamTrack")}} 对象的 {{jsxref("Array")}} 类型的成员,代表了每一个添加到流中的数据轨。
+
+ +

返回值

+ +

新建的 {{domxref("MediaStream")}} 对象,会包含创建时已给的数据轨内容,若没有给定任何数据轨则内容为空。

+ +

参数类别

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Media Capture', '#mediastream', 'MediaStream')}}{{Spec2('Media Capture')}}
+ +

浏览器兼容性

+ + + +

{{Compat("api.MediaStream.MediaStream")}}

+ +

也可参考

+ + -- cgit v1.2.3-54-g00ecf