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
|
---
title: AudioBufferSourceNode.loopEnd
slug: Web/API/AudioBufferSourceNode/loopEnd
tags:
- API
- Audio
- AudioBufferSourceNode
- Propriété
- Reference
- Web Audio API
translation_of: Web/API/AudioBufferSourceNode/loopEnd
---
<p>{{ APIRef("Web Audio API") }}</p>
<p>La propriété <strong><code>loopEnd</code></strong> de l'interface {{ domxref("AudioBufferSourceNode") }} est un nombre flottant à double précision qui indique, en secondes, à quel moment de l'{{domxref("AudioBuffer")}} la relecture doit s'arrêter, et éventuellement boucler de nouveau en reprenant à la position indiquée par la propriété {{domxref("AudioBufferSourceNode.loopStart", "loopStart")}}. Elle n'est prise en compte que si la propriété {{domxref("AudioBufferSourceNode.loop", "loop")}} vaut <code>true.</code></p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="brush: js">var source = contexteAudio.createBufferSource();
source.loopEnd = 3;
</pre>
<h3 id="Valeur">Valeur</h3>
<p>Un nombre flottant à double précision. La valeur par défaut est <code>0</code>.</p>
<h2 id="Exemples">Exemples</h2>
<p>Dans cet exemple, la fonction {{domxref("AudioContext.decodeAudioData")}} est utilisée pour décoder une piste audio et la mettre dans un {{domxref("AudioBufferSourceNode")}}. L'interface fournit deux boutons pour démarrer et arrêter la lecture, et des sliders pour modifier les propriétés <code>playbackRate</code>, <code>loopStart</code> et <code>loopEnd</code> à la volée.</p>
<p>Lorsque la lecture de la source audio est terminée, elle boucle. Il est possible de contrôler la durée de la boucle en modifiant <code>loopStart</code> et <code>loopEnd</code>. Par exemple, si leurs valeurs sont fixées à 20 et 25, respectivement, le son bouclera entre la 20ème et la 25ème secondes du morceau.</p>
<div class="note">
<p><strong>Note :</strong> Voir <a href="http://mdn.github.io/decode-audio-data/"> l'exemple complet</a> et <a href="https://github.com/mdn/decode-audio-data">son code source</a>.</p>
</div>
<pre class="brush: js">function getData() {
source = contexteAudio.createBufferSource();
requete = new XMLHttpRequest();
requete.open('GET', 'viper.ogg', true);
requete.responseType = 'arraybuffer';
requete.onload = function() {
var donneesAudio = requete.response;
contexteAudio.decodeAudioData(donneesAudio, function(buffer) {
maMemoireTampon = buffer;
dureeMorceau = buffer.duration;
source.buffer = maMemoireTampon;
source.playbackRate.value = playbackControl.value;
source.connect(contexteAudio.destination);
source.loop = true;
loopstartControl.setAttribute('max', Math.floor(dureeMorceau));
loopendControl.setAttribute('max', Math.floor(dureeMorceau));
},
function(e){"Erreur lors du décodage des données audio " + e.err});
}
requete.send();
}
...
loopstartControl.oninput = function() {
source.loopStart = loopstartControl.value;
loopstartValue.innerHTML = loopstartControl.value;
}
loopendControl.oninput = function() {
source.loopEnd = loopendControl.value;
loopendValue.innerHTML = loopendControl.value;
}</pre>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Statut</th>
<th scope="col">Commentaires</th>
</tr>
<tr>
<td>{{SpecName('Web Audio API', '#widl-AudioBufferSourceNode-loopEnd', 'loopEnd')}}</td>
<td>{{Spec2('Web Audio API')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{Compat("api.AudioBufferSourceNode.loopEnd")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li><a href="/fr/docs/Web/API/Web_Audio_API/Using_Web_Audio_API">Utiliser la Web Audio API</a></li>
</ul>
|