recursal/MDN huggingface dataset:
HTMLMediaElement: play event
============================

当 `paused` 属性由 `true` 转换为 `false` 时触发 `play` 事件，事件触发原因一般为 `play()` 方法调用，或者 `autoplay` 标签设置。

|  |  |
| --- | --- |
| Bubbles | No |
| Cancelable | No |
| Interface | `Event` |
| Target | Element |
| Default Action | None |
| Event handler property | `GlobalEventHandlers.onplay` (en-US) |
| Specification | HTML5 media |

Examples
--------

下方的例子监听了 HTMLMediaElement 标签的 `play` 事件，并且在事件触发后在控制台打印相应的信息。

Using `addEventListener()`:


```js
const video = document.querySelector("video");

video.addEventListener("play", (event) => {
  console.log(
    "The Boolean paused property is now false. Either the " +
      "play() method was called or the autoplay attribute was toggled.",
  );
});
```


Using the `onplay` event handler property:


```js
const video = document.querySelector("video");

video.onplay = (event) => {
  console.log(
    "The Boolean paused property is now false. Either the " +
      "play() method was called or the autoplay attribute was toggled.",
  );
};
```

Specifications
--------------

| Specification |
| --- |
| HTML Standard # event-media-play |
| HTML Standard # handler-onplay |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Related Events
--------------

* `HTMLMediaElement: playing event`
* `HTMLMediaElement: waiting event` (en-US)
* `HTMLMediaElement: seeking event` (en-US)
* `HTMLMediaElement: seeked event` (en-US)
* `HTMLMediaElement: ended event`
* `HTMLMediaElement: loadedmetadata event`
* `HTMLMediaElement: loadeddata event`
* `HTMLMediaElement: canplay event`
* `HTMLMediaElement: canplaythrough event`
* `HTMLMediaElement: durationchange event`
* `HTMLMediaElement: timeupdate event`
* `HTMLMediaElement: play event`
* `HTMLMediaElement: pause event`
* `HTMLMediaElement: ratechange event` (en-US)
* `HTMLMediaElement: volumechange event` (en-US)
* `HTMLMediaElement: suspend event` (en-US)
* `HTMLMediaElement: emptied event` (en-US)
* `HTMLMediaElement: stalled event` (en-US)
See Also
--------

* `HTMLAudioElement`
* `HTMLVideoElement`
* `<audio>`
* `<video>`
HTMLMediaElement: loadeddata
============================

**`loadeddata`** 事件在媒体当前播放位置的视频帧（通常是第一帧）加载完成后触发。

基本信息
----

|  |  |
| --- | --- |
| 是否冒泡 | 否 |
| 是否可取消 | 否 |
| 接口 | `Event` |
| 目标 | 元素 |
| 默认行为 | 无 |
| 事件处理器属性 | `GlobalEventHandlers.onloadeddata` |

**备注：** 若在移动/平板设备的浏览器设置中开启了流量节省（data-saver）模式，该事件则不会被触发。

示例
--

以下示例展示了如何为媒体元素（HTMLMediaElement）的 `loadeddata` 事件添加一个事件监听器，以在该事件触发时发送一条消息。

使用 `addEventListener()`：


```js
const video = document.querySelector("video");

video.addEventListener("loadeddata", (event) => {
  console.log(
    "Yay! readyState just increased to " +
      "HAVE\_CURRENT\_DATA or greater for first time.",
  );
});
```


使用 `onloadeddata` 事件处理器属性：


```js
const video = document.querySelector("video");

video.onloadeddata = (event) => {
  console.log(
    "Yay! readyState just increased to " +
      "HAVE\_CURRENT\_DATA or greater for first time.",
  );
};
```

规范
--

| Specification |
| --- |
| HTML Standard # event-media-loadeddata |
| HTML Standard # handler-onloadeddata |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关事件
----

* 媒体元素 `playing` 事件
* 媒体元素 `waiting` (en-US) 事件
* 媒体元素 `seeking` (en-US) 事件
* 媒体元素 `seeked` (en-US) 事件
* 媒体元素 `ended` 事件
* 媒体元素 `loadedmetadata` 事件
* 媒体元素 `loadeddata` 事件
* 媒体元素 `canplay` 事件
* 媒体元素 `canplaythrough` 事件
* 媒体元素 `durationchange` 事件
* 媒体元素 `timeupdate` 事件
* 媒体元素 `play` 事件
* 媒体元素 `pause` 事件
* 媒体元素 `ratechange` (en-US) 事件
* 媒体元素 `volumechange` (en-US) 事件
* 媒体元素 `suspend` (en-US) 事件
* 媒体元素 `emptied` (en-US) 事件
* 媒体元素 `stalled` (en-US) 事件
参见
--

* `HTMLAudioElement`
* `HTMLVideoElement`
* `<audio>`
* `<video>`
HTMLMediaElement: canplaythrough
================================

`canplaythrough` 事件在终端可以播放媒体文件时（估计已经加载了足够的数据来播放媒体直到其结束，而不必停止以进一步缓冲内容）被触发。

|  |  |
| --- | --- |
| 是否冒泡 | 否 |
| 是否可取消 | 否 |
| 接口 | `Event` |
| 目标 | 元素 |
| 默认行为 | 无 |
| 事件处理器属性 | `GlobalEventHandlers.oncanplaythrough` |

示例
--

以下示例展示了如何为媒体元素的 `canplaythrough` 事件添加一个事件监听器，以在该事件触发时发送一条消息。

使用 `addEventListener()`：


```js
const video = document.querySelector("video");

video.addEventListener("canplaythrough", (event) => {
  console.log(
    "I think I can play through the entire " +
      "video without ever having to stop to buffer.",
  );
});
```


使用 `oncanplaythrough` 事件处理器属性：


```js
const video = document.querySelector("video");

video.oncanplaythrough = (event) => {
  console.log(
    "I think I can play through the entire " +
      "video without ever having to stop to buffer.",
  );
};
```

规范
--

| Specification |
| --- |
| HTML Standard # event-media-canplaythrough |
| HTML Standard # handler-oncanplaythrough |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关事件
----

* 媒体元素 `playing` 事件
* 媒体元素 `waiting` (en-US) 事件
* 媒体元素 `seeking` (en-US) 事件
* 媒体元素 `seeked` (en-US) 事件
* 媒体元素 `ended` 事件
* 媒体元素 `loadedmetadata` 事件
* 媒体元素 `loadeddata` 事件
* 媒体元素 `canplay` 事件
* 媒体元素 `canplaythrough` 事件
* 媒体元素 `durationchange` 事件
* 媒体元素 `timeupdate` 事件
* 媒体元素 `play` 事件
* 媒体元素 `pause` 事件
* 媒体元素 `ratechange` (en-US) 事件
* 媒体元素 `volumechange` (en-US) 事件
* 媒体元素 `suspend` (en-US) 事件
* 媒体元素 `emptied` (en-US) 事件
* 媒体元素 `stalled` (en-US) 事件
参见
--

* `HTMLAudioElement`
* `HTMLVideoElement`
* `<audio>`
* `<video>`
HTMLMediaElement.controller
===========================

**`TMLMediaElement.controller`** 属性表示对应媒体元素的控制器。

语法
--


```js
...
```

### Value

属性的值是一个 `MediaController` 对象，如果没有对应的媒体元素值为`null`，默认值为`null`。

示例
--


```js
...
```

规范
--

在 2016 年，整个媒体控制器功能从 HTML 规范中移除。其不再有望成为标准。

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参阅
--

* 定义它的接口，`HTMLMediaElement`.
HTMLMediaElement.volume
=======================

**`HTMLMediaElement.volume`** 属性可设置媒体播放时的音量。

语法
--
```

var volume = video.volume; //1
```

### 值

取值为 0 到 1 的双精度值。0 为静音，1 为音量最大时的值。

示例
--
```

var obj = document.createElement('audio');
console.log(obj.volume); // 1
obj.volume = 0.75;
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-volume-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

更多
--

* 定义该属性的接口 `HTMLMediaElement`.
* `HTMLMediaElement.muted`
GlobalEventHandlers.onloadedmetadata
====================================

`GlobalEventHandlers` mixin 的 **`onloadedmetadata`** 属性是处理`loadedmetadata`事件的事件处理器。

`loadedmetadata`事件在元数据（metadata）被加载完成后触发。

语法
--
```

element.onloadedmetadata = handlerFunction;
var handlerFunction = element.onloadedmetadata;
```


`handlerFunction`应当是`null`或是由JavaScript 函数声明的事件 handler。

规范
--

| Specification |
| --- |
| HTML Standard # event-media-loadedmetadata |
| HTML Standard # handler-onloadedmetadata |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参考
--

* `loadedmetadata`
* DOM 事件句柄 (en-US)
HTMLMediaElement.muted
======================

**`HTMLMediaElement.muted`** 表示媒体元素是否被静音。

Syntax
------
```

var isMuted = audioOrVideo.muted
audio.muted = true;
```

### Value

A `Boolean` (en-US). `true` 表示被静音， `false` 表示未被静音。

Example
-------


```js
var obj = document.createElement("video");
console.log(obj.muted); // false
```

Specifications
--------------

| Specification |
| --- |
| HTML Standard # dom-media-muted-dev |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* The interface defining it, `HTMLMediaElement`.
* `HTMLMediaElement.defaultMuted` (en-US)
* `HTMLMediaElement.volume`
HTMLMediaElement.pause()
========================

**`HTMLMediaElement.pause()`** 方法可用来暂停媒体的播放，如果媒体已经处于暂停状态，该方法没有效果。

语法
--
```

HTMLMediaElement.pause()
```

### 参数

无。

### 返回值

无。

### 异常

无。

Specifications
--------------

| Specification |
| --- |
| HTML Standard # dom-media-pause-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTMLMediaElement.buffered
=========================

**`HTMLMediaElement.buffered`** 返回一个只读 `TimeRanges` 对象 返回媒体已缓冲的区域

**备注：** This feature is not available in Web Workers.

语法
--
```

var timeRange = audioObject.buffered
```

### 返回值

对象`TimeRanges`

length - 获得音频/视频中已缓冲范围的数量

buffered.start 开始的区域

buffered.end 结束的区域

例子
--
```

var obj = document.createElement('video');
console.log(obj.buffered); // TimeRanges { length: 0 }
console.log(obj.buffered.start(0));//第一个缓存开始的区域
console.log(obj.buffered.end(0));//第一个缓存结束的区域
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-buffered-dev |
| Media Source Extensions™ # htmlmediaelement-extensions |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* The interface defining it, `HTMLMediaElement`.
HTMLMediaElement.currentTime
============================

**`HTMLMediaElement.currentTime`** 属性会以秒为单位返回当前媒体元素的播放时间。设置这个属性会改变媒体元素当前播放位置。

**备注：** 该处原文：The **`HTMLMediaElement.currentTime`** property gives the current playback time in seconds. Setting this value seeks the media to the new time.

语法
--


```js
var cTime = video.currentTime;
video.currentTime = 35;
```

### 返回值

一个 `double` 双精度浮点数。

示例
--


```js
var obj = document.createElement("video");
console.log(obj.currentTime);
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-currenttime-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关链接
----

* The interface defining it, `HTMLMediaElement`.
* `HTMLMediaElement.fastSeek()` (en-US) for another method of setting the time
HTMLMediaElement.src
====================

\*\*`HTMLMediaElement.src`\*\*属性反映 HTML 媒体元素的`src` 属性的值，该属性指示要在元素中使用的媒体资源的 URL。

**备注：** 了解此元素中当前正在使用的媒体资源的 URL 的最佳方法是查看 `currentSrc`属性的值，该属性还考虑从 `HTMLSourceElement` (en-US) (代表 `<source>` 元素) 中提供的列表中选择最佳或首选媒体资源

Syntax
------
```

var mediaUrl = HTMLMediaElement.src;
```

### Value

一个`USVString`对象，包含要在元素中使用的媒体资源的 URL;此属性反映 HTML 元素的`src` 属性的值。

Example
-------


```js
var obj = document.createElement("video");
console.log(obj.src); // ""
```

Specifications
--------------

| Specification |
| --- |
| HTML Standard # dom-media-src |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* The interface defining it, `HTMLMediaElement`.
HTMLMediaElement: abort event
=============================

资源没有被完全加载时就会触发 **`abort`** 事件，但错误不会触发该事件。

|  |  |
| --- | --- |
| Bubbles | No |
| Cancelable | No |
| Interface | `Event` |
| Event handler property | `onabort` |

示例
--


```js
const video = document.querySelector("video");
const videoSrc = "https://path/to/video.webm";

video.addEventListener("abort", () => {
  console.log(`Abort loading: ${videoSrc}`);
});

const source = document.createElement("source");
source.setAttribute("src", videoSrc);
source.setAttribute("type", "video/webm");

video.appendChild(source);
```

规范
--

| Specification |
| --- |
| HTML Standard # event-media-abort |
| HTML Standard # handler-onabort |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参阅
--

* `HTMLAudioElement`
* `HTMLVideoElement`
* `<audio>`
* `<video>`
HTMLMediaElement.duration
=========================

**`HTMLMediaElement.duration`** 属性以秒为单位给出媒体的长度，如果没有媒体数据可用，则为零。

语法
--


```js
var myDuration = audioOrVideo.duration;
```

### 值

如果媒体数据可用但长度未知，则此值为 NaN。如果媒体流式传输且没有预定义长度，则值为 Inf。

例子
--


```js
var obj = document.createElement("video");
console.log(obj.duration); // NaN
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-duration-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* 定义它的接口，`HTMLMediaElement`。
HTMLMediaElement: pause event
=============================

当暂停媒体播放时 `pause` 事件触发，并且媒体进入暂停状态，最常见的是通过`pause()`方法来触发。当`pause()` 触发时`pause`状态只改变 1 次，并且媒体的`pause`变成 `true`。

General info
------------

|  |  |
| --- | --- |
| Bubbles | No |
| Cancelable | No |
| Interface | `Event` |
| Target | Element |
| Default Action | None |
| Event handler property | `GlobalEventHandlers.onpause` |
| Specification | HTML5 media |

例子
--

下面例子给媒体添加 `pause` 事件监听 handler，然后事件发生时会给 handler 发送一个提醒信息

使用 `addEventListener()：`


```js
const video = document.querySelector("video");

video.addEventListener("pause", (event) => {
  console.log(
    "The Boolean paused property is now true. Either the " +
      "pause() method was called or the autoplay attribute was toggled.",
  );
});
```


使用 `onpause` 事件监听属性：


```js
const video = document.querySelector("video");

video.onpause = (event) => {
  console.log(
    "The Boolean paused property is now true. Either the " +
      "pause() method was called or the autoplay attribute was toggled.",
  );
};
```

规范
--

| Specification |
| --- |
| HTML Standard # event-media-pause |
| HTML Standard # handler-onpause |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关事件
----

* `HTMLMediaElement: playing event`
* `HTMLMediaElement: waiting event` (en-US)
* `HTMLMediaElement: seeking event` (en-US)
* `HTMLMediaElement: seeked event` (en-US)
* `HTMLMediaElement: ended event`
* `HTMLMediaElement: loadedmetadata event`
* `HTMLMediaElement: loadeddata event`
* `HTMLMediaElement: canplay event`
* `HTMLMediaElement: canplaythrough event`
* `HTMLMediaElement: durationchange event`
* `HTMLMediaElement: timeupdate event`
* `HTMLMediaElement: play event`
* `HTMLMediaElement: pause event`
* `HTMLMediaElement: ratechange event` (en-US)
* `HTMLMediaElement: volumechange event` (en-US)
* `HTMLMediaElement: suspend event` (en-US)
* `HTMLMediaElement: emptied event` (en-US)
* `HTMLMediaElement: stalled event` (en-US)
See also
--------

* `HTMLAudioElement`
* `HTMLVideoElement`
* `<audio>`
* `<video>`
* `SpeechSynthesisUtterance` (en-US)
HTMLMediaElement.crossOrigin
============================

**`HTMLMediaElement.crossOrigin`** 属性是当前图片元素的跨域资源共享 (CORS) 设置，详情可参考 CORS (en-US) 设置。

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-crossorigin |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

更多
--

* 定义该属性的接口 `HTMLMediaElement`.
HTMLMediaElement.audioTracks
============================

**`HTMLMediaElement.audioTracks`** 获得可用音频轨道的数量

语法
--
```

audio|video.audioTracks
```

返回值
---

AudioTrackList 对象 表示音频/视频的可用音频轨道

用例
--

以 audio 标签为例


```html
<audio id="audio"></audio>
```


调用
```

myVid=document.getElementById("audio");
alert(myVid.audioTracks.length);
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-audiotracks-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* 定义它的接口，`HTMLMediaElement`。
HTMLMediaElement.controlsList
=============================

**实验性:** **这是一项实验性技术**  
在将其用于生产之前，请仔细检查浏览器兼容性表格。

`HTMLMediaElement`接口的\*\*`controlsList`\*\* 属性返回 DOMTokenList，帮助用户在显示其自己的控件集时选择要在媒体元素上显示的控件。DOMTokenList 可以设置以下三个可能值中的一个或多个：nodownload，nofullscreen 和 noremoteplayback（值是一组无序的空格分隔标记，这些标记是ASCII 不区分大小写的）。

1. `nodownload`关键字暗示的下载控制应使用用户代理自己的一套媒体元素控件时被隐藏。
2. `nofullscreen`关键字暗示在使用用户代理自己的媒体元素控件集时，应隐藏全屏模式控件。
3. `noremoteplayback`关键字暗示当使用用户代理自己的媒体元素控件集时，应隐藏远程播放控件。
语法
--
```

var domTokenList = HTMLMediaElement.controlsList;
```

### Value

A `DOMTokenList`.

示例
--
```

<video controls controlslist="nodownload" id="video" src=""></video>
```


```
<video controls controlslist="nodownload nofullscreen noremoteplayback" id="video" src=""></video>
```

规格
--

https://wicg.github.io/controls-list/html-output/multipage/embedded-content.html#attr-media-controlslist.

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参阅
--

* Chrome HTMLMediaElement controlsList Sample 示例
play()
======

**`HTMLMediaElement.play()`** 方法会尝试播放媒体。这个方法返回一个 `Promise`，当媒体成功开始播放时被解决（resolved）。当播放因为任何原因失败时，这个 promise 被拒绝（rejected）。

语法
--
```

let promise = HTMLMediaElement.play();
```

### 参数

无

### 返回值

一个 `Promise`，当媒体成功开始播放时被解决，当播放因为任何原因失败时则被被拒绝。

**备注：** 旧版本的浏览器可能不会从 `play()` 返回值。

### 异常

当 promise 接收到一个异常名称作为其唯一输入参数时（相对于传统的异常抛出），promise 的拒绝处理程序会被调用。可能的异常如下：

`NotAllowedError`

用户代理（浏览器）或操作系统在当前上下文或当前情境下不允许媒体播放。例如，这会发生在浏览器要求用户显式按下播放按钮才播放媒体时。

`NotSupportedError`

媒体源（可能是`MediaStream`、`MediaSource`、`Blob` 或 `File` 等）不是一个支持的媒体格式。

也可能报告其他异常，取决于浏览器的实现细节，媒体播放器的实现等等。

使用说明
----

虽然“autoplay”这个词常常被用于描述当媒体加载完成时立即开始播放，浏览器的自动播放策略其实也应用于脚本驱动的媒体播放，包括调用 `play()`。

如果 user agent 被设置为不允许自动或脚本驱动的媒体播放，调用 `play()` 会导致返回的 promise 被立即以 `NotAllowedError` 拒绝。网页应该对这种情况做好准备。举个例子，一个网页不应该假定播放已经自动开始而直接展示相应的用户界面，而应该在返回的 promise 被解决或拒绝后再更新用户界面。更多信息参见 示例。

**备注：** `play()` 方法可能会让用户被询问是否给予播放媒体的权限，这可能会使返回的 promise 延迟解决。你应该确保你的代码不需要即时响应。

关于自动播放和禁止自动播放的更多深度内容，参见我们的文章 Autoplay guide for media and Web Audio APIs。

示例
--

这个例子展示了如何确认播放已经开始以及如何优雅地处理自动播放被禁止：
```

let videoElem = document.getElementById("video");
let playButton = document.getElementById("playbutton");

playButton.addEventListener("click", handlePlayButton, false);
playVideo();

async function playVideo() {
  try {
    await videoElem.play();
    playButton.classList.add("playing");
  } catch(err) {
    playButton.classList.remove("playing");
  }
}

function handlePlayButton() {
  if (videoElem.paused) {
    playVideo();
  } else {
    videoElem.pause();
    playButton.classList.remove("playing");
  }
}
```


在这个例子中，视频的播放由 `async` `playVideo()` 函数控制。函数尝试播放视频，如果播放成功，将 `playButton` 元素的类名称设为 `"playing"`。如果播放失败，去除 `playButton` 元素的类名称，恢复其原来的样式。通过监视 `play()` 返回的 `Promise` 是被解决还是被拒绝以保证播放按钮的外观与实际的播放状态相匹配。

上述代码开始执行时，先获取 `<video>` 元素和用于切换播放、暂停的 `<button>` 元素的引用。在切换按钮上添加 `click` 事件的处理程序。最后调用 `playVideo()` 尝试自动开始播放。

你可以在 这里 查看或修改这个例子。

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-play-dev |

**备注：** WHATWG 版本和 W3C 版本的规范不一样（2016 年 4 月 20 日），一个返回 `Promise`，一个不返回。

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* Web media technologies
* Learning: Video and audio content
* Autoplay guide for media and Web Audio APIs
* Using the Web Audio API
HTMLMediaElement.canPlayType()
==============================

**`HTMLMediaElement.canPlayType()`** 方法会判断传递的媒体格式参数是否能够被播放。

**备注：** This feature is not available in Web Workers.

语法
--
```

str = audioOrVideo.canPlayType(mediaType);
```

### 参数

mediaType

`DOMString`包含了媒体文件的 MIME 类型。

### 返回值

`String`. 有可能的值为：

* `'probably'`: 这种媒体文件似乎是可播放的。
* `'maybe'`: 不能告诉你这种媒体文件是否能被播放，直到你尝试播放它。
* `''` (empty string): 这种媒体文件不能被播放。

**备注：** 以前 `canPlayType('video/webm')` 会返回 `'probably'。`从 Gecko 28 开始，将返回 `'maybe'`。 (Firefox bug 884275)

示例
--


```js
var obj = document.createElement("video");
console.log(obj.canPlayType("video/mp4")); // "maybe"
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-navigator-canplaytype-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

其他
--

* 接口定义， `HTMLMediaElement`.
HTMLMediaElement.playbackRate
=============================

**`HTMLMediaElement.playbackRate`** 属性设置媒体文件播放时的速率。这用于实现让用户控制快放、慢放等。正常播放速率乘以该值表示当前的播放速率，所以 1.0 表示一个正常的播放速率。

将 `playbackRate` 设为负值**不可以**实现倒播。

媒体文件倒着播放时，或者播放速率低于或高于浏览器内核规定的可用范围（比如，Gecko 约定范围是 0.25 ～ 5.0）时，播放过程将静音。

任意播放速率下，音频的音调将默认与其匹配。一些浏览器实现了非标准的 `HTMLMediaElement.preservesPitch` (en-US) 
非标准
 属性来进行音调控制。

语法
--


```js
// video
video.playbackRate = 1.5;
// audio
audio.playbackRate = 1.0;
```

### 赋值说明

浮点数 1.0 是 "正常速度"，比 1.0 小的值使媒体文件播放的慢于正常速度，比 1.0 大的值使播放变得快于正常速度。

示例
--


```js
var obj = document.createElement("video");
console.log(obj.playbackRate); // 1
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-playbackrate-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

请参阅
---

* 接口定义 `HTMLMediaElement`.
HTMLMediaElement.loop
=====================

**`HTMLMediaElement.loop`** 属性是 HTML 标签 `loop` 属性的映射，它决定了媒体元素播放结束时是否重新开始。

语法
--


```js
var loop = video.loop;
audio.loop = true;
```

### 返回值

一个布尔值 `Boolean` (en-US).

示例
--


```js
var obj = document.createElement("video");
obj.loop = true; // true
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-loop |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关链接
----

* The interface defining it, `HTMLMediaElement`.
HTMLMediaElement.autoplay
=========================

**`HTMLMediaElement.autoplay`** 属性等同于 HTML 属性中的 `autoplay`, 它表示当 player 下载到足够可以播放的媒体文件时，是否自动播放视频。

注意：一些版本的 Chrome 只支持\*\*`autostart`**, 不支持**`autoplay`\*\*

语法
--
```

...
```

### 参数类型

`Boolean` (en-US)用例
--

...


```html
<...></...>
```


...


```js
Xxx.xxx();
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-autoplay |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* 接口定义：`HTMLMediaElement`。
HTMLMediaElement.load()
=======================

**`load()`** 方法重置媒体成初始化状态，选择一个播放源，为载入媒体重新播放做准备。媒体预播放的信息是由 **`preload`** 这个参数决定的。

此方法只在对媒体做动态更改时管用，要么更改`src`属性，要么添加或删除`source` 。 `load()` 将会重置元素重新扫描可用的源，从而让改动生效。

语法
--
```

mediaElement.load();
```

### 参数

None.

### 返回值

`undefined`.

用法
--

调用 `load()` 会使媒体上所有正在进行的操作中止，然后根据 `audio` 或者 `video` 元素的 `src` 或者 `source` 属性里寻找合适的播放源并重新加载媒体内容。更多查看 Supporting multiple formats 和 Video and audio content 。

The process of aborting any ongoing activities will cause any outstanding `Promise`s returned by `play()` being resolved or rejected as appropriate based on their status before the loading of new media can begin. Pending play promises are aborted with an `"AbortError"` `DOMException`.

在 load 过程中 合适的事件会发生并通知给媒体本身，包括：

* 如果已经是 `load` 过了，则 `abort` 事件发送给媒体。
* If the element has already been initialized with media, the **`emptied` (en-US)** event is sent.
* 如果重置播放位置到开始，通常指修改播放位置，**timeupdate** 事件触发。
* 当已经选择了源并且已经准备加载内容了，**loadstart** 事件触发。
* 之前的几点，媒体加载并且事件已经送达
例子
--

例子中有一个 `<video>` 元素然后重置它 `load()`.


```js
var mediaElem = document.querySelector("video");
mediaElem.load();
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-load-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTMLMediaElement.paused
=======================

只读属性 `HTMLMediaElement.paused` 指示视频是否正在暂停。

返回值
---

布尔值。`true` 表示正在暂停，`false` 表示没有暂停。

示例
--


```js
const obj = document.createElement("video");
console.log(obj.paused); // true
```

规范
--

| Specification |
| --- |
| HTML Standard # dom-media-paused-dev |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `HTMLMediaElement`：用于定义 `HTMLMediaElement.paused` 属性的接口。