Processing:Библиотеки/Sound/Класс AudioSample/write()

Материал из Онлайн справочника
Версия от 11:53, 20 мая 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску


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



write()[1]

Класс

AudioSample

Обозначение

write()

Описание

Записывать данные в звуковой фрагмент можно разными способами. Во-первых, версия функции write() с 1 параметром (data) использует массив значений float в качестве источника данных, которые нужно записать в звуковой фрагмент. Этот массив должен содержать столько же значений float, сколько имеется отсчетов (сэмплов) в звуковом фрагменте. Во-вторых, при помощи функции write() с 4 параметрами (startFrame, data, startIndex, numFrames) запись можно выполнить не в весь звуковой фрагмент, а в его часть. В-третьих, при помощи версии write() с 2 параметрами (index, value) запись можно выполнить лишь в один отсчет (сэмпл) звукового фрагмента.

Синтаксис

.write(data)
.write(startFrame, data, startIndex, numFrames)
.write(index, value)

Параметры

data  массив, служащий источником записываемых данных. Тип данных  float[]
startFrame  индекс отсчета (сэмпла) в звуковом фрагменте, с которого нужно начать запись данных. Тип данных  int
startIndex  индекс значения в массиве, с которого нужно начать запись данных (как правило, «0»). Тип данных  int
numFrames  количество отсчетов (сэмплов), которые должны быть записаны в звуковой фрагмент (не может превышать data.length - startIndex). Тип данных  int
index  индекс отсчета (сэмпла) звукового фрагмента, которому нужно присвоить заданное значение. Тип данных  int
value  значение, которое нужно присвоить заданному отсчету (сэмплу). Тип данных  float

Возвращаемое значение

void

Пример

import processing.sound.*;
AudioSample sample;

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

  // создаем новый звуковой фрагмент:
  sample = new AudioSample(this, 100000, 22050);

  // в созданном выше звуковом фрагменте нет ничего, кроме нулей,
  // поэтому давайте запишем в него какие-нибудь данные:
  for (int i = 0; i < sample.frames(); i++) {
    // создаем случайные значения,
    // и в результате звук будет похож на белый шум:
    sample.write(i, random(-100, 100));
  }
  sample.play();
}      

void draw() {
}

См.также

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