JavaScript:Библиотеки/p5.sound/Класс p5.SoundRecorder: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 3: Строка 3:
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


= Класс p5.SoundRecorder <ref>[https://p5js.org/reference/#/p5.SoundRecorder p5js.org - p5.SoundRecorder]</ref>=
= Класс p5.SoundRecorder <ref>[https://p5js.org/reference/#/p5.SoundRecorder p5js.org - p5.SoundRecorder]</ref>=
Строка 16: Строка 14:
Чтобы использовать эту функцию, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:
Чтобы использовать эту функцию, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>
<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>
</syntaxhighlight>
</syntaxhighlight>
Строка 22: Строка 20:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
new p5.SoundRecorder()
new p5.SoundRecorder()
</syntaxhighlight>
</syntaxhighlight>
Строка 37: Строка 35:
===№1===
===№1===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
var mic, recorder, soundFile;
var mic, recorder, soundFile;
var state = 0;
var state = 0;
Строка 97: Строка 95:
===№2===
===№2===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">


</syntaxhighlight>
</syntaxhighlight>
Строка 103: Строка 101:
===№3===
===№3===


<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="javascript" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">


</syntaxhighlight>
</syntaxhighlight>
Строка 112: Строка 110:


<references />
<references />
{{SEO
|Заголовок статьи=JavaScript: Класс p5.SoundRecorder / Онлайн справочник - wikihandbk.com
|Ключевые слова=Класс p5.SoundRecorder
|Описание статьи=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/JavaScript:Библиотеки/p5.sound/Класс p5.SoundRecorder</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2018-09-15
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}

Текущая версия от 19:54, 23 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс p5.SoundRecorder [1]

Описание

Этот класс предназначен для записи звука, чтобы получившуюся запись можно было воспроизвести и/или сохранить в файл формата «*.wav». Объект p5.SoundRecorder записывает все звуки, генерируемые вашим скетчем. Кроме того, к нему при помощи функции setInput() можно назначить какой-то конкретный источник звука.

Метод record() в качестве параметра принимает объект p5.SoundFile. Если проигрывание файла будет остановлено – или когда истечет время, или после вызова функции stop() – объект p5.SoundRecorder отправит свою запись объекту p5.SoundFile для дальнейшего проигрывания.

Чтобы использовать эту функцию, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:

<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>

Синтаксис

new p5.SoundRecorder()

Методы

  • setInput() – подключает к объекту p5.SoundRecorder заданный объект или звуковое устройство. Если параметра задано не будет, p5.SoundRecorder вернет звуки, генерируемые всеми объектами библиотеки p5.sound в вашем скетче.
  • record() – начинает запись. Чтобы получить доступ к получившейся записи, задайте в первом параметре объект p5.SoundFile. Объект p5.SoundRecorder отправит то, что записал, этому объекту p5.SoundFile, чтобы он проиграл это после завершения записи. Также предусмотрены дополнительные параметры для длительности записи (в секундах) и функции обратного вызова, которая будет вызвана после завершения записи.
  • stop() – останавливает запись. После того, как запись останавливается, ее результаты отправляются объекту p5.SoundFile, который был задан параметром в функции record(). И если в record() также была задана функция обратного вызова, она тоже будет вызвана.
  • saveSound() – сохраняет объект p5.SoundFile в файл формата «*.wav».

Пример

№1

var mic, recorder, soundFile;
var state = 0;

function setup() {
  background(200);
  // создаем объект p5.AudioIn:
  mic = new p5.AudioIn();

  // начинаем обрабатывать аудиоданные, идущие через микрофон:
  mic.start();

  // создаем объект p5.SoundRecorder для записи звука:
  recorder = new p5.SoundRecorder();

  // подключаем микрофон к объекту для записи звука:
  recorder.setInput(mic);

  // этот объект p5.SoundFile будет использоваться
  // для проигрывания и сохранения записанного звука:
  soundFile = new p5.SoundFile();

  text('keyPress to record', 20, 20);
   //  'нажмите на клавишу, чтобы начать запись'
}

function keyPressed() {
  // убеждаемся, что пользователь включил микрофон: 
  if (state === 0 && mic.enabled) {

    // записываем звук на наш объект p5.SoundFile:
    recorder.record(soundFile);

    background(255,0,0);
    text('Recording!', 20, 20);
     //  'Запись!'
    state++;
  }
  else if (state === 1) {
    background(0,255,0);

    // останавливаем запись
    // и отправляем результаты объекту «soundFile»:
    recorder.stop();

    text('Stopped', 20, 20);
     //  'Запись остановлена'
    state++;
  }

  else if (state === 2) {
    soundFile.play(); // проигрываем результат!
    save(soundFile, 'mySound.wav');
    state++;
  }
}

№2

№3

См.также

Внешние ссылки