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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску


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



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() {
}

См.также

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