Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(zh-cn): convert noteblocks for /web (part 8) #22634

Merged
merged 2 commits into from
Jul 29, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions files/zh-cn/web/api/url/createobjecturl_static/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ URL 的生命周期与其创建时所在窗口的 {{domxref("document")}} 绑定

要释放对象 URL,请调用 {{domxref("URL.revokeObjectURL_static", "revokeObjectURL()")}}。

> **备注:** 此特性在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中*不*可用,因为它有可能导致内存泄漏。
> [!NOTE]
> 此特性在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中*不*可用,因为它有可能导致内存泄漏。

## 语法

Expand Down Expand Up @@ -46,7 +47,8 @@ URL.createObjectURL(object)

在较早版本的媒体源规范中,需要为 {{domxref("MediaStream")}} 创建一个对象 URL 才能将流附加到 {{HTMLElement("video")}} 元素。这已不再必要,浏览器正在逐步取消对此的支持。

> **警告:** 如果你还有依赖于 {{domxref("URL.createObjectURL_static", "createObjectURL()")}} 将流附加到媒体元素的代码,你需要更新代码并将 {{domxref("HTMLMediaElement.srcObject", "srcObject")}} 设置为 `MediaStream`。
> [!WARNING]
> 如果你还有依赖于 {{domxref("URL.createObjectURL_static", "createObjectURL()")}} 将流附加到媒体元素的代码,你需要更新代码并将 {{domxref("HTMLMediaElement.srcObject", "srcObject")}} 设置为 `MediaStream`。

## 规范

Expand Down
3 changes: 2 additions & 1 deletion files/zh-cn/web/api/url/port/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ l10n:

{{domxref("URL")}} 接口的 **`port`** 属性是一个表示 URL 端口号的字符串。

> **备注:** 如果传递给 [`URL()`](/zh-CN/docs/Web/API/URL/URL) 构造函数的输入字符串不包含显式端口号(例如 `https://localhost`),或者包含的端口号是与输入字符串的协议部分对应的默认端口号(例如 `https://localhost:443`),那么在构造函数返回的 [`URL`](/zh-CN/docs/Web/API/URL) 对象中,端口属性的值将为空字符串:`''`。
> [!NOTE]
> 如果传递给 [`URL()`](/zh-CN/docs/Web/API/URL/URL) 构造函数的输入字符串不包含显式端口号(例如 `https://localhost`),或者包含的端口号是与输入字符串的协议部分对应的默认端口号(例如 `https://localhost:443`),那么在构造函数返回的 [`URL`](/zh-CN/docs/Web/API/URL) 对象中,端口属性的值将为空字符串:`''`。

## 值

Expand Down
3 changes: 2 additions & 1 deletion files/zh-cn/web/api/url/revokeobjecturl_static/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ l10n:

当你完成对对象 URL 的使用后,请调用此方法,让浏览器知道无需再保持对文件的引用。

> **备注:** 由于 {{domxref("Blob")}} 接口的生命周期问题及潜在的内存泄漏风险,此方法在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中*不*可用。
> [!NOTE]
> 由于 {{domxref("Blob")}} 接口的生命周期问题及潜在的内存泄漏风险,此方法在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中*不*可用。

## 语法

Expand Down
3 changes: 2 additions & 1 deletion files/zh-cn/web/api/urlsearchparams/tostring/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ l10n:

{{domxref("URLSearchParams")}} 接口的 **`toString()`** 方法返回适用于 URL 中的查询字符串。

> **备注:** 方法返回不带问号的查询字符串。这与 [`Location.search`](/zh-CN/docs/Web/API/Location/search)、[`HTMLAnchorElement.search`](/zh-CN/docs/Web/API/HTMLAnchorElement/search) 和 [`URL.search`](/zh-CN/docs/Web/API/URL/search) 都不同,它们均带有问号。
> [!NOTE]
> 方法返回不带问号的查询字符串。这与 [`Location.search`](/zh-CN/docs/Web/API/Location/search)、[`HTMLAnchorElement.search`](/zh-CN/docs/Web/API/HTMLAnchorElement/search) 和 [`URL.search`](/zh-CN/docs/Web/API/URL/search) 都不同,它们均带有问号。

## 语法

Expand Down
3 changes: 2 additions & 1 deletion files/zh-cn/web/api/view_transitions_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ slug: Web/API/View_Transitions_API

View Transitions API 提供了一种更简单的方法来处理必需的 DOM 更改和过渡动画。

> **备注:** View Transitions API 目前不支持跨文档视图过渡,但这已计划在未来的规范版本中实现,并正在积极开发中。
> [!NOTE]
> View Transitions API 目前不支持跨文档视图过渡,但这已计划在未来的规范版本中实现,并正在积极开发中。

### 创建基本视图过渡

Expand Down
6 changes: 4 additions & 2 deletions files/zh-cn/web/api/visualviewport/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ slug: Web/API/VisualViewport

你可以使用 {{domxref("Window.visualViewport")}} 获得对应 window 的视觉视口 API。

> **备注:** 与布局视口(layout viewport)不同的是:只有最上层的 window 才有视觉视口(visual viewport)这一概念。因此只有最上层 window 的 `VisualViewport` 属性才是有效的,其他层的视觉视口属性可看作是布局视口属性的别名。比如,对于一个 {{htmlelement("iframe")}} ,其对应的视觉视口属性 {{domxref("VisualViewport.width")}} 相当于对应的布局视口属性,如 {{domxref("Element.clientWidth", "document.documentElement.clientWidth")}}.
> [!NOTE]
> 与布局视口(layout viewport)不同的是:只有最上层的 window 才有视觉视口(visual viewport)这一概念。因此只有最上层 window 的 `VisualViewport` 属性才是有效的,其他层的视觉视口属性可看作是布局视口属性的别名。比如,对于一个 {{htmlelement("iframe")}} ,其对应的视觉视口属性 {{domxref("VisualViewport.width")}} 相当于对应的布局视口属性,如 {{domxref("Element.clientWidth", "document.documentElement.clientWidth")}}.

## 属性

Expand Down Expand Up @@ -93,7 +94,8 @@ window.visualViewport.addEventListener("scroll", viewportHandler);
window.visualViewport.addEventListener("resize", viewportHandler);
```

> **备注:** 应小心使用上述方案,使用这种方式模拟的 `position: device-fixed` 可能会导致其他元素在滚动页面时出现闪烁。
> [!NOTE]
> 应小心使用上述方案,使用这种方式模拟的 `position: device-fixed` 可能会导致其他元素在滚动页面时出现闪烁。

## 规范

Expand Down
3 changes: 2 additions & 1 deletion files/zh-cn/web/api/waveshapernode/curve/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ slug: Web/API/WaveShaperNode/curve

如有必要,使用线性插值计算畸变曲线的中间值。

> **备注:** 数组的值可以是 `null` : 在这个情况下,不会有畸变被应用到输入的信号上。
> [!NOTE]
> 数组的值可以是 `null` : 在这个情况下,不会有畸变被应用到输入的信号上。

## 语法

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ var aliceTiming = {
- 一个,持续时间是毫秒,而不是秒 - 3000 不是 3 秒.。像{{domxref("WindowTimers.setTimeout()")}} 和{{domxref("Window.requestAnimationFrame()")}}, Web 动画 API 只支持毫秒。
- The other thing you'll notice is that it's `iterations`, not `iteration-count`.

> **备注:** CSS 动画中使用的属性值与 Web 动画中使用的属性值存在一些小的差异。比如,Web 动画中不能使用字符串“infinite”,而是使用 Javascript 的关键字 Infinity。以及我们用 `easing` 来代替`timing-function`。我们不必在这列出`easing`的值,因为不像在 CSS 动画里,默认的"[animation-timing-function](/zh-CN/docs/Web/CSS/animation-timing-function)"是`ease`。页面动画 API 的默认 easing 是`linear`— 而这就是我们想要的。
> [!NOTE]
> CSS 动画中使用的属性值与 Web 动画中使用的属性值存在一些小的差异。比如,Web 动画中不能使用字符串“infinite”,而是使用 Javascript 的关键字 Infinity。以及我们用 `easing` 来代替`timing-function`。我们不必在这列出`easing`的值,因为不像在 CSS 动画里,默认的"[animation-timing-function](/zh-CN/docs/Web/CSS/animation-timing-function)"是`ease`。页面动画 API 的默认 easing 是`linear`— 而这就是我们想要的。

#### 整合这些特性

Expand Down Expand Up @@ -359,7 +360,8 @@ aliceChange.onfinish = endGame;

Prefer promises? The Web Animations API also specifies two promises: [`onfinish`](/zh-CN/docs/Web/API/Animation/onfinish) and [`oncancel`](/zh-CN/docs/Web/API/Animation/oncancel).

> **备注:** These promises are not fully supported as of this writing.
> [!NOTE]
> These promises are not fully supported as of this writing.

## 结论

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ slug: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API

当一个音频片段开始播放时,你将会听到最左侧的样本帧,之后是他右侧相邻的一帧,以此类推。在立体声中,你将会同时听到两个声道。样本帧的概念在此时非常有用,因为每个样本帧代表特定的播放时间,而和声道个数无关,这种方式很有利于精确的多声道同步处理。

> **备注:** 只需用帧的数目除以采样率即可得到播放时间(单位为秒)。用样本点数目除以声道个数即可得到帧的数目。
> [!NOTE]
> 只需用帧的数目除以采样率即可得到播放时间(单位为秒)。用样本点数目除以声道个数即可得到帧的数目。

下面我们将展示几个浅显易懂的示例:

Expand All @@ -66,7 +67,8 @@ var buffer = context.createBuffer(2, 22050, 44100);

如果你使用上面的方法调用,你将会得到一个立体声(两个声道)的音频片段 (Buffer),当它在一个频率为 44100 赫兹(这是目前大部分声卡处理声音的频率)的音频环境中播放的时候,会持续 0.5 秒:22050 帧 / 44100 赫兹 = 0.5 秒。

> **备注:** 在[数字音频](https://zh.wikipedia.org/wiki/數位音訊)中,**44,100 [赫兹](https://zh.wikipedia.org/wiki/赫兹)**(有时也写作 **44.1 kHz**)是一个常见的[采样频率](https://zh.wikipedia.org/wiki/取樣)。为什么选取 44.1kHz 呢?首先,因为[人耳的接收频率](https://zh.wikipedia.org/wiki/聽力範圍)大约在 20 Hz 到 20,000 Hz 之间,根据[采样定理](https://zh.wikipedia.org/wiki/采样定理),采样频率一定要大于最终生成数据最大频率的二倍,因此就一定要大于 40,000 Hz(即 40kHz)。不仅如此,在采样之前信号还必须通过[低通滤波器](https://zh.wikipedia.org/wiki/低通滤波器),否则 会发生[混叠](https://zh.wikipedia.org/wiki/混疊)现象,一个理想低通滤波器会完全留下低于 20kHz 的信号(且没有使它衰减)并完美阻拦一切高于 20kHz 的信号,而事实上[过度频带](https://wikipedia.org/wiki/Transition_band)总是存在,在这个区域内信号会被部分衰减。这个频带越宽,建立一个[抗混叠滤波器](https://zh.wikipedia.org/wiki/抗混疊濾波器)才越容易。因此我们选取 44.1kHz 允许我们有 2.05kHz 的空间预留给过度频带。
> [!NOTE]
> 在[数字音频](https://zh.wikipedia.org/wiki/數位音訊)中,**44,100 [赫兹](https://zh.wikipedia.org/wiki/赫兹)**(有时也写作 **44.1 kHz**)是一个常见的[采样频率](https://zh.wikipedia.org/wiki/取樣)。为什么选取 44.1kHz 呢?首先,因为[人耳的接收频率](https://zh.wikipedia.org/wiki/聽力範圍)大约在 20 Hz 到 20,000 Hz 之间,根据[采样定理](https://zh.wikipedia.org/wiki/采样定理),采样频率一定要大于最终生成数据最大频率的二倍,因此就一定要大于 40,000 Hz(即 40kHz)。不仅如此,在采样之前信号还必须通过[低通滤波器](https://zh.wikipedia.org/wiki/低通滤波器),否则 会发生[混叠](https://zh.wikipedia.org/wiki/混疊)现象,一个理想低通滤波器会完全留下低于 20kHz 的信号(且没有使它衰减)并完美阻拦一切高于 20kHz 的信号,而事实上[过度频带](https://wikipedia.org/wiki/Transition_band)总是存在,在这个区域内信号会被部分衰减。这个频带越宽,建立一个[抗混叠滤波器](https://zh.wikipedia.org/wiki/抗混疊濾波器)才越容易。因此我们选取 44.1kHz 允许我们有 2.05kHz 的空间预留给过度频带。

```js
var context = new AudioContext();
Expand All @@ -75,7 +77,8 @@ var buffer = context.createBuffer(1, 22050, 22050);

如果你这样调用,你将会得到一个单声道的音频片段 (Buffer),当它在一个频率为 44100 赫兹的音频环境中播放的时候,将会被自动按照 44100 赫兹*重采样*(因此也会转化为 44100 赫兹的片段),并持续 1 秒:44100 帧 / 44100 赫兹 = 1 秒。

> **备注:** 音频重采样与图片的缩放非常类似:比如你有一个 16 x 16 的图像,但是你想把它填充到一个 32 x 32 大小的区域,你就要对它进行缩放(重采样)。得到的结果会是一个较低品质的(图像会模糊或者有锯齿形的边缘,这取决于缩放采用的算法),但它却是能将原图形缩放,并且缩放后的图像占用空间比相同大小的普通图像要小。重新采样的音频道理相同——你会节约一些空间,但事实上你无法产出高频率的声音(高音区)。
> [!NOTE]
> 音频重采样与图片的缩放非常类似:比如你有一个 16 x 16 的图像,但是你想把它填充到一个 32 x 32 大小的区域,你就要对它进行缩放(重采样)。得到的结果会是一个较低品质的(图像会模糊或者有锯齿形的边缘,这取决于缩放采用的算法),但它却是能将原图形缩放,并且缩放后的图像占用空间比相同大小的普通图像要小。重新采样的音频道理相同——你会节约一些空间,但事实上你无法产出高频率的声音(高音区)。

### 分离式与交错式音频片段

Expand Down Expand Up @@ -107,7 +110,8 @@ LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR(对于一个有 16 帧的音频片段)
| _四声道_ | `0: L: 左 1: R: 右 2: SL: 环绕左 3: SR: 环绕右` | _Quad_ | `0: L: left 1: R: right 2: SL: surround left 3: SR: surround right` |
| _5.1_ | `0: L: 左 1: R: 右 2: C: 中央 3: LFE: 低音炮 4: SL: 环绕左 5: SR: 环绕右` | _5.1_ | `0: L: left 1: R: right 2: C: center 3: LFE: subwoofer 4: SL: surround left 5: SR: surround right` |

> **备注:** 由于缩写来自英文,因此保留英文作对照。
> [!NOTE]
> 由于缩写来自英文,因此保留英文作对照。

### 向上和向下混频

Expand Down Expand Up @@ -335,7 +339,8 @@ LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR(对于一个有 16 帧的音频片段)
- {{domxref("AnalyserNode.getByteTimeDomainData()")}}
- : 返回一个{{domxref("Uint8Array")}} 无符号字节数组 (unsigned byte array),其中包含传递到此音频节点声音的实时波形,时间数据。

> **备注:** 更多信息可以参考我们的这篇文章:[基于 Web Audio API 实现音频可视化效果](/zh-CN/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API)。
> [!NOTE]
> 更多信息可以参考我们的这篇文章:[基于 Web Audio API 实现音频可视化效果](/zh-CN/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API)。

## 空间位置化

Expand All @@ -349,7 +354,8 @@ LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR(对于一个有 16 帧的音频片段)

![我们可以看到 AudioListener 的位置、向上和向前的向量(两者彼此成 90° 角)。](webaudiolistenerreduced.png)

> **备注:** 更多信息可以参考我们的这篇文章:[网络音频位置空间化入门](/zh-CN/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)。
> [!NOTE]
> 更多信息可以参考我们的这篇文章:[网络音频位置空间化入门](/zh-CN/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)。

## 扇入与扇出

Expand Down
6 changes: 4 additions & 2 deletions files/zh-cn/web/api/web_audio_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ Web Audio API 使用户可以在**音频上下文**(AudioContext)中进行

Web Audio API 也使我们能够控制音频的*空间化*。在基于*源 - 侦听器模型*的系统中,它允许控制*平移模型*和处理*距离引起的衰减*或移动源(移动侦听)引起的*多普勒效应*。

> **备注:** 你可以阅读我们关于 Web Audio API 的文章来了解更多细节 [Web Audio API 背后的基本概念](/zh-CN/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API)。
> [!NOTE]
> 你可以阅读我们关于 Web Audio API 的文章来了解更多细节 [Web Audio API 背后的基本概念](/zh-CN/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API)。

## Web Audio API 接口

Expand Down Expand Up @@ -122,7 +123,8 @@ Web Audio API 使用的音频源接口。

可以编写 JavaScript 代码来处理音频数据。当然,这需要用到下面的接口和事件。

> **备注:** 这些功能在 Web Audio API 的 2014 年 8 月 9 日版本中已经标记为不推荐的,这些功能很快会被[Audio_Workers](#audio_workers)代替。
> [!NOTE]
> 这些功能在 Web Audio API 的 2014 年 8 月 9 日版本中已经标记为不推荐的,这些功能很快会被[Audio_Workers](#audio_workers)代替。

- {{domxref("ScriptProcessorNode")}}
- : **`ScriptProcessorNode`** 接口用于通过 JavaScript 代码生成,处理,分析音频。它是一个{{domxref("AudioNode")}}类型的音频处理模块,但是它与两个缓冲区相连接,一个缓冲区里包含当前的输入数据,另一个缓冲区里包含着输出数据。每当新的音频数据被放入输入缓冲区,就会产生一个{{domxref("AudioProcessingEvent")}}事件,当这个事件处理结束时,输出缓冲区里应该写好了新数据。
Expand Down
Loading