Processing:Библиотеки/Sound/Класс AudioSample: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 10: Строка 10:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
AudioSample
AudioSample
</syntaxhighlight>
</syntaxhighlight>
Строка 37: Строка 37:
==Конструктор==
==Конструктор==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
AudioSample(parent, frames)
AudioSample(parent, frames)
AudioSample(parent, frames, stereo)
AudioSample(parent, frames, stereo)
Строка 49: Строка 49:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
parent    – как правило, используется «this». Тип данных – PApplet
parent    – как правило, используется «this». Тип данных – PApplet
frames    – количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных – int
frames    – количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных – int
Строка 59: Строка 59:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
import processing.sound.*;
import processing.sound.*;
AudioSample sample;
AudioSample sample;

Версия от 18:11, 14 мая 2023


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


Черновик


AudioSample[1]

Обозначение

AudioSample

Описание

Класс AudioSample предоставляет низкоуровневый доступ к аудио-буферу, что позволяет создавать, проигрывать, манипулировать и получать доступ к звуковым фрагментам. Если вы хотите создать звуковой фрагмент из аудиофайла, хранящегося на диске, это можно сделать при помощи подкласса SoundFile.

Методы

  • channels() – возвращает количество каналов в звуковом фрагменте
  • cue() – ставит курсор воспроизведения на заданную позицию звукового фрагмента
  • duration() – возвращает продолжительность звукового фрагмента (в секундах)
  • frames() – возвращает количество отсчетов (сэмплов) звукового фрагмента
  • jump() – перескакивает на заданную позицию звукового фрагмента, продолжая его проигрывание
  • play() – запускает проигрывание звукового фрагмента; проигрывает фрагмент лишь 1 раз
  • rate() – задает скорость проигрывания звукового фрагмента
  • resize() – меняет размер буфера звукового фрагмента на заданное количество отсчетов (сэмплов)
  • sampleRate() – возвращает частоту дискретизации звукового фрагмента
  • pan() – задает стерео-значение для звукового фрагмента (работает только с моно!)
  • isPlaying() – проверяет, проигрывается ли в данный момент звуковой фрагмент
  • pause() – останавливает проигрывание звукового фрагмента, ставя курсор воспроизведения в место, где была сделана остановка
  • read() – считывает в массив заданное количество отсчетов (сэмплов) звукового фрагмента
  • write() – записывает заданное количество отсчетов (сэмплов) в звуковой фрагмент

Конструктор

AudioSample(parent, frames)
AudioSample(parent, frames, stereo)
AudioSample(parent, frames, stereo, frameRate)
AudioSample(parent, data)
AudioSample(parent, data, stereo)
AudioSample(parent, data, frameRate)
AudioSample(parent, data, stereo, frameRate)

Параметры

parent     как правило, используется «this». Тип данных  PApplet
frames     количество отсчетов (сэмплов), которые будет включать звуковой фрагмент. Тип данных  int
stereo     задает то, как будет восприниматься этот звуковой фрагмент: как 2-канальный (стерео) или 1-канальный (моно). По умолчанию стоит моно (false). Тип данных  boolean
framerate  частота дискретизации звукового фрагмента (по умолчанию  44100). Тип данных  int
data       массив значений float. Собственно, звуковые данные этого звукового фрагмента. Длина этого массива соответствует количеству отсчетов (сэмплов) в звуковом фрагменте. Тип данных  float[]

Пример

import processing.sound.*;
AudioSample sample;

void setup() {
  size(640, 360);
  background(255);

  // создаем массив и вручную задаем в нем осциллятор,
  // генерирующий синусный сигнал:
  int resolution = 1000;
  float[] sinewave = new float[resolution];
  for (int i = 0; i < resolution; i++) {
    sinewave[i] = sin(TWO_PI*i/resolution);
  }

  // создаем на основе этих данных звуковой фрагмент;
  // частоту дискретизации задаем на 200 генераций в секунду:
  sample = new AudioSample(this, sinewave, 200 * resolution);

  // запускаем циклическое проигрывание звукового фрагмента
  // (но не слишком громко):
  sample.amp(0.2);
  sample.loop();
}      

void draw() {
}

См.также

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