Да.Когда вы получаете байты из аудиопотока, вы добавляете их в главный буфер.Если вы хотите сделать запись в стиле punch-in.Вам нужно знать смещение в главном буфере, куда вы хотите пробить.Таким образом, вместо записи в буфер с самого начала, вы записываете в буфер со смещения, на которое нажал пользователь.Вы должны будете связать указатель мыши со смещением в вашем основном буфере.Затем, когда вы получите новое аудио, просто перезапишите значения в этом буфере.Если вы хотите сделать удар, то он перезаписывает только небольшую часть аудио.Вам понадобится конечная точка в главном буфере, где также можно остановить запись новых данных.Пользователь может выделить часть аудио, чтобы получить точки входа / выхода, скажем.
Вам придется использовать ByteArrays для двух буферов.Вы можете извлечь необработанные байты из Sound, используя Sound.extract ().Здесь также могут быть использованы другие источники необработанного звука:
var master : ByteArray; // assume this is loaded with some audio
public function punchIn( startLocation : index, sound : Sound ) : void {
sound.extract( master, sound.bytesTotal, startLocation );
}
Изменяя параметр длины, вы можете использовать функцию punch in и punch out.