aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/audiobuffersourcenode/loop/index.html
blob: 0c4c1ebe2b428bb0dcbd56f68c049dded127fee8 (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
---
title: AudioBufferSourceNode.loop
slug: Web/API/AudioBufferSourceNode/loop
tags:
  - API
  - Audio
  - AudioBufferSourceNode
  - Loop
  - Media
  - Property
  - Reference
  - Web Audio API
  - sound
  - プロパティ
  - メディア
  - 繰り返し
  - 音声
translation_of: Web/API/AudioBufferSourceNode/loop
---
<div>{{ APIRef("Web Audio API") }}</div>

<div>
<p>{{ domxref("AudioBufferSourceNode") }}<code>loop</code> プロパティは、 {{domxref("AudioBuffer")}} の末端に達した時に、音声を繰り返し再生するべきかを示す論理値です。</p>
</div>

<p><code>loop</code> プロパティの既定値は <code>false</code>です。</p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox">var <var>loopingEnabled</var> = <var>AudioBufferSourceNode</var>.loop;
<var>AudioBufferSourceNode</var>.loop = true | false;
</pre>

<h3 id="Value" name="Value"></h3>

<p>繰り返しが有効な場合はブール値 <code>true</code> 、それ以外は <code>false</code>です。</p>

<p>ループが有効である場合、 {{domxref("AudioBufferSourceNode.start", "start()")}} が呼ばれると音声は開始点として指定された場所から再生されます。 {{domxref("AudioBufferSourceNode.loopEnd", "loopEnd")}} で指定された場所に達すると、音声は {{domxref("AudioBufferSourceNode.loopStart", "loopStart")}} で指定された地点に戻って再生され続けます。</p>

<h2 id="Example" name="Example"></h2>

<p>この例では、 {{domxref("AudioContext.decodeAudioData")}} 関数は音声トラックをデコードし {{domxref("AudioBufferSourceNode")}} に追加するために使用されています。再生・停止のためにボタンが配置され、スライダーが <code>playbackRate</code> プロパティを逐次変更するために使用されています。音声はループして再生されます。</p>

<div class="note">
<p><a class="external external-icon" href="https://mdn.github.io/webaudio-examples/decode-audio-data/">実際に動作する例を見る</a> (<a class="external external-icon" href="https://github.com/mdn/webaudio-examples/blob/master/decode-audio-data/index.html">または、ソースコードを見る</a>)ことができます。</p>
</div>

<pre class="brush: js;highlight[17]">function getData() {
  source = audioCtx.createBufferSource();
  request = new XMLHttpRequest();

  request.open('GET', 'viper.ogg', true);

  request.responseType = 'arraybuffer';

  request.onload = function() {
    var audioData = request.response;

    audioCtx.decodeAudioData(audioData, function(buffer) {
        myBuffer = buffer;
        source.buffer = myBuffer;
        source.playbackRate.value = playbackControl.value;
        source.connect(audioCtx.destination);
        source.loop = true;
      },

      function(e){"Error with decoding audio data" + e.err});

  }

  request.send();
}

// wire up buttons to stop and play audio, and range slider control

play.onclick = function() {
  getData();
  source.start(0);
  play.setAttribute('disabled', 'disabled');
  playbackControl.removeAttribute('disabled');
}</pre>

<h2 id="Specification" name="Specification">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('Web Audio API', '#widl-AudioBufferSourceNode-loop', 'loop')}}</td>
   <td>{{Spec2('Web Audio API')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>

<div>
<p>{{Compat("api.AudioBufferSourceNode.loop")}}</p>
</div>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/ja/docs/Web/API/Web_Audio_API">Web Audio API</a></li>
 <li><a href="/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API">Web Audio API の使用</a></li>
 <li>{{domxref("AudioBufferSourceNode")}}</li>
</ul>