aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/audiocontext/index.html
blob: eae53ceaa1bd6903e422cfd87e2fb0f3259de7c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
---
title: AudioContext
slug: Web/API/AudioContext
tags:
  - API
  - Audio
  - AudioContext
  - Web Audio API
  - sound
translation_of: Web/API/AudioContext
---
<div>{{APIRef("Web Audio API")}}</div>

<p><code>AudioContext</code>接口表示由链接在一起的音频模块构建的音频处理图,每个模块由一个{{domxref("AudioNode")}}表示。音频上下文控制它包含的节点的创建和音频处理或解码的执行。在做任何其他操作之前,您需要创建一个<code>AudioContext</code>对象,因为所有事情都是在上下文中发生的。建议创建一个<code>AudioContext</code>对象并复用它,而不是每次初始化一个新的<code>AudioContext</code>对象,并且可以对多个不同的音频源和管道同时使用一个<code>AudioContext</code>对象。</p>

<p>{{InheritanceDiagram}}</p>

<h2 id="构造函数">构造函数</h2>

<dl>
 <dt>{{domxref("AudioContext.AudioContext", "AudioContext()")}}</dt>
 <dd>创建并返回一个新的 <code>AudioContext</code> 对象。</dd>
</dl>

<h2 id="属性">属性</h2>

<p><em>也从其父接口继承属性, {{domxref("BaseAudioContext")}}.</em></p>

<dl>
 <dt>{{domxref("AudioContext.baseLatency")}} {{readonlyinline}} {{experimental_inline}}</dt>
 <dd>返回{{domxref("AudioContext")}}将音频从{{domxref("AudioDestinationNode")}}传递到音频子系统的处理延迟的秒数。</dd>
 <dt>{{domxref("AudioContext.outputLatency")}} {{readonlyinline}} {{experimental_inline}}</dt>
 <dd>返回对当前音频上下文的预估输出延迟。</dd>
</dl>

<h2 id="方法">方法</h2>

<p><em>也从其父接口继承方法​​​​, {{domxref("BaseAudioContext")}}.</em></p>

<dl>
 <dt>{{domxref("AudioContext.close()")}}</dt>
 <dd>关闭一个音频环境, 释放任何正在使用系统资源的音频。</dd>
 <dt>{{domxref("AudioContext.createMediaElementSource()")}}</dt>
 <dd>创建一个{{domxref("MediaElementAudioSourceNode")}}接口来关联{{domxref("HTMLMediaElement")}}. 这可以用来播放和处理来自{{HTMLElement("video")}}{{HTMLElement("audio")}} 元素的音频。</dd>
 <dt>{{domxref("AudioContext.createMediaStreamSource()")}}</dt>
 <dd>创建一个{{domxref("MediaStreamAudioSourceNode")}}接口来关联可能来自本地计算机麦克风或其他来源的音频流{{domxref("MediaStream")}}</dd>
 <dt>{{domxref("AudioContext.createMediaStreamDestination()")}}</dt>
 <dd>创建一个{{domxref("MediaStreamAudioDestinationNode")}}接口来关联可能储存在本地或已发送至其他计算机的{{domxref("MediaStream")}}音频。</dd>
 <dt>{{domxref("AudioContext.createMediaStreamTrackSource()")}}</dt>
 <dd>创建一个{{domxref("MediaStreamTrackAudioSourceNode")}},它与一个{{domxref("MediaStream")}}相关联,表示一个媒体流轨迹。</dd>
 <dt>{{domxref("AudioContext.getOutputTimestamp()")}}</dt>
 <dd>返回一个新的AudioTimestamp对象,该对象包含两个与当前音频上下文相关的音频时间戳。</dd>
 <dt>{{domxref("AudioContext.resume()")}}</dt>
 <dd>恢复之前被暂停的音频上下文中的时间进程。</dd>
 <dt>{{domxref("AudioContext.suspend()")}}</dt>
 <dd>暂停音频上下文中的时间进程,暂停音频硬件访问并减少进程中的CPU/电池使用。</dd>
</dl>

<h2 id="例子">例子</h2>

<p>简单声明:</p>

<pre class="brush: js notranslate">var audioCtx = new AudioContext;</pre>

<p>跨浏览器的方式:</p>

<pre class="notranslate">var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.</pre>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">规范</th>
   <th scope="col">状态</th>
   <th scope="col">注释</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Audio API', '#AudioContext-section', 'AudioContext')}}</td>
   <td>{{Spec2('Web Audio API')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<p>{{Compat("api.AudioContext")}}</p>

<div></div>

<h2 id="相关链接">相关链接</h2>

<ul>
 <li>使用 <a href="/zh-CN/docs/Web_Audio_API/Using_Web_Audio_API">Web Audio API</a></li>
 <li>{{domxref("OfflineAudioContext")}}</li>
</ul>