diff options
Diffstat (limited to 'files/ru/web/api/body/arraybuffer/index.html')
-rw-r--r-- | files/ru/web/api/body/arraybuffer/index.html | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/files/ru/web/api/body/arraybuffer/index.html b/files/ru/web/api/body/arraybuffer/index.html deleted file mode 100644 index a9dbd21162..0000000000 --- a/files/ru/web/api/body/arraybuffer/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Body.arrayBuffer() -slug: Web/API/Body/arrayBuffer -tags: - - API - - Экспериментальный - - справочник -translation_of: Web/API/Body/arrayBuffer ---- -<div>{{APIRef("Fetch")}}</div> - -<p>Метод <strong><code>arrayBuffer()</code></strong> из примеси(mixin) {{domxref("Body")}} берёт поток(stream) {{domxref("Response")}} и читает его до завершения. Он возвращает промис, который будет успешно завершён с помощью {{domxref("ArrayBuffer")}}.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="brush: js">response.arrayBuffer().then(function(buffer) { - // можно сделать что либо с буфером -});</pre> - -<h3 id="Параметры">Параметры</h3> - -<p>Нат параметров.</p> - -<h3 id="Возвращаемое_значение">Возвращаемое значение</h3> - -<p>Промис, который содержит {{domxref("ArrayBuffer")}}.</p> - -<h2 id="Пример">Пример</h2> - -<p>В нашем примере <a href="http://mdn.github.io/fetch-examples/fetch-array-buffer/">живой загрузки с array buffer</a> есть кнопка Play. При нажатии на кнопку вызывается функция <code>getData()</code>. Стоит учесть что до проигрывания аудио файл будет скачан целиком. Если вам необходимо начать воспроизведение файла ogg во время загрузки (стримить аудио) - то лучше рассмотреть {{domxref("HTMLAudioElement")}}:</p> - -<pre class="brush: js">new Audio(music.ogg).play() -</pre> - -<p>В функции <code>getData()</code> мы создаём новый запрос используя конструктор {{domxref("Request.Request")}}, после этого используем его чтобы загрузить OGG звук. Мы также используем {{domxref("AudioContext.createBufferSource")}} чтобы создать ресурс аудиобуффера. При успешном завершении запроса, мы считываем {{domxref("ArrayBuffer")}} из ответа используя <code>arrayBuffer()</code>, декодируем аудио с помощью {{domxref("AudioContext.decodeAudioData")}}, устанавливаем раскодированные данные как ресурс аудио буфера (<code>source.buffer</code>), затем используем данные этого ресурса в {{domxref("AudioContext.destination")}}.</p> - -<p>Когда функция <code>getData()</code> заканчивает своё выполнение, мы стартуем проигрывание аудио ресурса функцией <code>start(0)</code>, потом блокируем кнопку проигрывания для предотвращения повторного проигрывания (это может привести к ошибкам)</p> - -<pre class="brush: js">function getData() { - source = audioCtx.createBufferSource(); - - var myRequest = new Request('viper.ogg'); - - fetch(myRequest).then(function(response) { - return response.arrayBuffer(); - }).then(function(buffer) { - audioCtx.decodeAudioData(buffer, function(decodedData) { - source.buffer = decodedData; - source.connect(audioCtx.destination); - }); - }); -}; - -// навешиваем обработчики старт и стоп на кнопку -play.onclick = function() { - getData(); - source.start(0); - play.setAttribute('disabled', 'disabled'); -}</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('Fetch','#dom-body-arraybuffer','arrayBuffer()')}}</td> - <td>{{Spec2('Fetch')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Поддержка_браузерами">Поддержка браузерами</h2> - - - -<p>{{Compat("api.Body.arrayBuffer")}}</p> - -<h2 id="Смотрите_также">Смотрите также</h2> - -<ul> - <li><a href="/en-US/docs/Web/API/ServiceWorker_API">ServiceWorker API</a></li> - <li><a href="/en-US/docs/Web/HTTP/Access_control_CORS">HTTP access control (CORS)</a></li> - <li><a href="/en-US/docs/Web/HTTP">HTTP</a></li> -</ul> |