blob: 7973ada3dcd4e56818748b2f5fe86cc00e30c39e (
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
---
title: AudioBufferSourceNode.buffer
slug: Web/API/AudioBufferSourceNode/buffer
translation_of: Web/API/AudioBufferSourceNode/buffer
---
<p>{{ APIRef("Web Audio API") }}</p>
<div class="summary">
<p>La propriété <code><strong>buffer</strong></code> de l'interface {{ domxref("AudioBufferSourceNode") }} donne la possibilité de lire un son en utilisant un {{domxref("AudioBuffer")}} comme ressource audio.</p>
</div>
<p>Si la propriété <code>buffer</code> a la valeur NULL, elle définit un canal unique silencieux (chaque échantillon vaut 0).</p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox"><em>AudioBufferSourceNode</em>.buffer = <em>soundBuffer</em>;
</pre>
<h3 id="Valeur">Valeur</h3>
<p>Un {{domxref("AudioBuffer")}} qui contient les données représentant le son que le noeud va lire.</p>
<h2 id="Exemple">Exemple</h2>
<div class="note">
<p><strong>Note</strong>: pour un exemple complet, voir <a class="external external-icon" href="http://mdn.github.io/audio-buffer/">le code interprété</a>, ou <a class="external external-icon" href="https://github.com/mdn/audio-buffer">le code source</a>.</p>
</div>
<pre class="brush: js;highlight[19]">var myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);
button.onclick = function() {
// Remplit le buffer avec du bruit blanc;
// valeurs aléatoires entre -1.0 et 1.0
for (var channel = 0; channel < channels; channel++) {
// Crée le ArrayBuffer qui contient effectivement les données
var nowBuffering = myArrayBuffer.getChannelData(channel);
for (var i = 0; i < frameCount; i++) {
// Math.random() is in [0; 1.0]
// audio doit être compris entre [-1.0; 1.0]
nowBuffering[i] = Math.random() * 2 - 1;
}
}
// Crée un AudioBufferSourceNode.
// C'est le AudioNode à utiliser pour jouer un AudioBuffer
var source = audioCtx.createBufferSource();
// Définit le buffer dans l'AudioBufferSourceNode
source.buffer = myArrayBuffer;</pre>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Statut</th>
<th scope="col">Commentaire</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName("Web Audio API", "#widl-AudioBufferSourceNode-buffer", "buffer")}}</td>
<td>{{Spec2("Web Audio API")}}</td>
<td>Définition initiale</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_navigateurs">Compatibilité navigateurs</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Chrome</th>
<th>Edge</th>
<th>Firefox (Gecko)<sup>[2]</sup></th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Support basique</td>
<td>{{CompatNo}}<sup>[1]</sup></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("23.0")}}</td>
<td>{{CompatNo}}</td>
<td>15 {{property_prefix("webkit")}}<br>
22</td>
<td>6 {{property_prefix("webkit")}}</td>
</tr>
<tr>
<td>Propriété <code>detune</code></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("40.0")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Android</th>
<th>Chrome</th>
<th>Edge</th>
<th>Firefox Mobile (Gecko)<sup>[2]</sup></th>
<th>Firefox OS</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Support basique</td>
<td>{{CompatNo}}</td>
<td>28 {{property_prefix("webkit")}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("25.0")}}</td>
<td>1.2</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>6 {{property_prefix("webkit")}}</td>
</tr>
<tr>
<td>Propriété <code>detune</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] supprimé dans Chrome 44.0. Etait supporté avec un préfixe <code>webkit</code> depuis la version 14.</p>
<p>[2] Firefox ne gère pas correctement la valeur <code>null</code>. Au lieu de produire un noeud avec un seul canal silencieux, le noeud devient inutilisable et est ignoré si on essaie de le connecter à un autre noeud.</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<p>{{page("/en-US/docs/Web/API/AudioBufferSourceNode","See_also")}}</p>
|