Пакет | flash.events |
Класс | public class SampleDataEvent |
Наследование | SampleDataEvent Event Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Это событие может применяться двумя способами:
- для предоставления динамически создаваемых аудиоданных объекту Sound;
- для получения данных от объекта Microphone.
Динамическое создание аудио с помощью объекта Sound. Используйте событие sampleData
для воспроизведения динамически создаваемого аудио. В данной среде объект Sound на самом деле не содержит звуковых данных. Вместо этого он выполняет функцию сокета для потока звуковых данных, направляемых ему при помощи функции, назначенной в качестве обработчика события sampleData
.
В функции используется метод ByteArray.writeFloat()
для записи в свойство data
события, которое содержит отобранные для воспроизведения данные.
Если объект Sound не загрузил файл MP3, то при вызове его метода play()
объект начинает отправлять события sampleData
, запрашивая образцы звука. Объект Sound продолжает отправлять события в процессе воспроизведения звука, пока не прекращается передача данных или пока не будет вызван метод stop()
объекта SoundChannel.
Время ожидания события варьируется от платформы к платформе и может измениться в будущих версиях Flash Player или AIR. Не следует привязывать программу к определенному времени ожидания. Вместо этого его следует вычислять по формуле ((SampleDataEvent.position/44.1) - SoundChannelObject.position)
.
Предоставьте от 2048 до 8192 образцов для свойства data
объекта SampleDataEvent. Для лучшей производительности укажите как можно больше образцов. Чем меньше образцов вы укажете, тем больше вероятность возникновения звуковых помех во время воспроизведения. Однако этот принцип действует по-разному на разных платформах, и помехи могут возникнуть в различных ситуациях, например при изменении размера браузера. Вы можете написать код, который будет работать на одной платформе с 2048 образцами, но это не значит, что этот код будет работать так же хорошо на другой платформе. Если вам требуется как можно меньший период ожидания, предоставьте пользователям возможность выбирать объем данных.
Если указать менее 2048 образцов, объект Sound воспроизведет оставшиеся образцы и остановит звук, как будто был достигнут конец аудиофайла, создав событие complete
С помощью метода extract()
объекта Sound можно извлечь его аудиоданные, которые затем можно записать в динамический поток для воспроизведения.
При использовании прослушивателя события sampleData
с объектом Sound единственными доступными методами класса Sound являются extract()
и play()
. Вызов любых других методов или свойств приводит к возникновению исключения «недопустимый вызов». Все методы и свойства объекта SoundChannel остаются доступными.
Захват аудио из объекта Microphone Используйте событие sampleData
для захвата аудиоданных с микрофона. При добавлении прослушивателя для события sampleData
объект Microphone отправляет это событие, когда становятся доступны образцы звука.
В функции обработчика событий следует использовать метод ByteArray.readFloat()
для чтения свойства data
, содержащего данные образца. Событие будет содержать несколько образцов, поэтому следует использовать цикл while
для чтения доступных данных.
var soundBytes:ByteArray = new ByteArray(); while(event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); soundBytes.writeFloat(sample); }
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
bubbles : Boolean [только для чтения]
Определяет, является ли событие событием восходящей цепочки. | Event | ||
cancelable : Boolean [только для чтения]
Указывает, можно ли предотвратить поведение, связанное с событием. | Event | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
currentTarget : Object [только для чтения]
Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. | Event | ||
data : ByteArray
Данные в аудиопотоке. | SampleDataEvent | ||
eventPhase : uint [только для чтения]
Текущая фаза в потоке событий. | Event | ||
position : Number
Положение данных в аудиопотоке. | SampleDataEvent | ||
target : Object [только для чтения]
Целевой объект события. | Event | ||
type : String [только для чтения]
Тип события. | Event |
Метод | Определено | ||
---|---|---|---|
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Создает объект события, содержащий данные о событиях звуковых данных. | SampleDataEvent | ||
[переопределить]
Создает копию объекта SampleDataEvent и задает значение каждого свойства, совпадающее с оригиналом. | SampleDataEvent | ||
Служебная функция для реализации метода toString() в пользовательских классах ActionScript 3.0 Event. | Event | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Проверяет, выполнялся ли для события вызова метода preventDefault(). | Event | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Отменяет поведение по умолчанию для события, если такое поведение можно отменить. | Event | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Отменяет обработку прослушивателей событий в текущем узле, а также во всех узлах, которые следуют в потоке событий за текущим узлом. | Event | ||
Отменяет обработку прослушивателей событий в узлах, которые следуют в потоке событий за текущим узлом. | Event | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
[переопределить]
Возвращает строку, содержащую все свойства объекта SampleDataEvent. | SampleDataEvent | ||
Возвращает элементарное значение заданного объекта. | Object |
Константа | Определено | ||
---|---|---|---|
SAMPLE_DATA : String = "sampleData" [статические]
Задает значение свойства type для объекта события SampleDataEvent. | SampleDataEvent |
data | свойство |
position | свойство |
SampleDataEvent | () | Конструктор |
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Создает объект события, содержащий данные о событиях звуковых данных. Объекты Event передаются прослушивателям событий в качестве параметров.
Параметрыtype:String — Тип события. Этим значением является: Event.SAMPLE_DATA .
| |
bubbles:Boolean (default = false ) — Определяет, участвует ли объект Event в фазе восходящей цепочки потока событий.
| |
cancelable:Boolean (default = false ) — Определяет, можно ли отменить объект Event.
| |
theposition:Number (default = 0 ) — Положение данных в аудиопотоке.
| |
thedata:ByteArray (default = null ) — Массив байт данных.
|
clone | () | метод |
override public function clone():Event
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Создает копию объекта SampleDataEvent и задает значение каждого свойства, совпадающее с оригиналом.
ВозвращаетEvent — Новый объект SampleDataEvent, значения свойств которого соответствуют значениям оригинала.
|
toString | () | метод |
override public function toString():String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает строку, содержащую все свойства объекта SampleDataEvent. Строка имеет следующий формат:
[SampleDataEvent type=value bubbles=value cancelable=value theposition=value thedata=value]
String — Строка, содержащая все свойства объекта SampleDataEvent .
|
SAMPLE_DATA | Константа |
public static const SAMPLE_DATA:String = "sampleData"
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Задает значение свойства type
для объекта события SampleDataEvent
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
position | Точка, из которой поступают аудиоданные. |
Связанные элементы API
var mySound:Sound = new Sound(); function sineWaveGenerator(event:SampleDataEvent):void { for ( var c:int=0; c<8192; c++ ) { event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); } } mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator); mySound.play();
Tue Jun 12 2018, 11:34 AM Z