Processing:Библиотеки/Sound/Класс AudioSample/read(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Класс== | ==Класс== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
AudioSample | AudioSample | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 16: | Строка 16: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
read() | read() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 26: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
.read(data) | .read(data) | ||
.read(startFrame, data, startIndex, numFrames) | .read(startFrame, data, startIndex, numFrames) | ||
Строка 34: | Строка 34: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
data – массив, в который будут записаны считанные данные. Тип данных – float[] | data – массив, в который будут записаны считанные данные. Тип данных – float[] | ||
startFrame – индекс первого отсчета (сэмпла) звукового фрагмента, с которого нужно начать считывание данных. Тип данных – int | startFrame – индекс первого отсчета (сэмпла) звукового фрагмента, с которого нужно начать считывание данных. Тип данных – int | ||
Строка 44: | Строка 44: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Тип данных – void или float | Тип данных – void или float | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 50: | Строка 50: | ||
==Пример== | ==Пример== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <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
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
read()[1]
Класс
AudioSample
Обозначение
read()
Описание
Считывать данные со звукового фрагмента можно разными способами. Во-первых, метод read() может использовать массив значений float (параметр data), куда будут записаны все данные, считанные из звукового фрагмента. Этот массив должен быть способен вместить в себе столько значений float, сколько есть отсчетов (сэмплов) в звуковом фрагменте. Кроме того, при помощи версии read() с 4 параметрами (startFrame, data, startIndex, numFrames) звуковой фрагмент можно прочесть не полностью, а частично. Наконец, при помощи read() с параметром index можно прочесть значение лишь одного отсчета (сэмпла) звукового фрагмента и вернуть его в виде float.
Синтаксис
.read(data)
.read(startFrame, data, startIndex, numFrames)
.read(index)
Параметры
data – массив, в который будут записаны считанные данные. Тип данных – float[]
startFrame – индекс первого отсчета (сэмпла) звукового фрагмента, с которого нужно начать считывание данных. Тип данных – int
startIndex – позиция в массиве data, на которой нужно начать запись считанных данных (как правило, «0»). Тип данных – int
numFrames – количество отсчетов (сэмплов), которые нужно прочесть (не может быть выше data.length - startIndex). Тип данных – int
index – индекс одного отсчета (сэмпла) звукового фрагмента, который нужно прочесть и вернуть в виде значения float. Тип данных – int
Возвращаемое значение
Тип данных – void или float
Пример
import processing.sound.*;
AudioSample sample;
void setup() {
size(640, 360);
background(255);
// создаем новый звуковой фрагмент:
sample = new AudioSample(this, 100000, 22050);
// разными способами считываем данные из этого звукового фрагмента
// (код ниже – лишь для демонстрации, потому что звуковой фрагмент,
// только что созданный выше, в сущности, содержит лишь нули)
// считываем самый первый отсчет (сэмпл):
float frame = sample.read(0);
// считываем весь звуковой фрагмент:
float[] sampleContent = new float[100000];
sample.read(sampleContent);
// считываем только часть звукового фрагмента:
float[] subSample = new float[50000];
// считываем 500000 отсчетов (сэмплов) - начиная с 30000:
sample.read(30000, subSample, 0, 50000);
}
void draw() {
}