AS3 Запуск и остановка звука с середины звуковой дорожки - PullRequest
3 голосов
/ 25 апреля 2011

У меня есть один аудиофайл, я бы не хотел его обрезать.

Я знаю, что могу использовать класс звука mySound.play(150), чтобы начать с 150 мс, но не встречалспособ остановить звук, скажем, через 500 мс или при 650 мс.

Спасибо за любой ввод.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Вы можете использовать событие ввода кадра, чтобы проверить положение SoundChannel - SoundChannel . Как только позиция станет больше или равна вашему временному коду, остановите звук. Это, конечно, не будет невероятно точным и будет зависеть от частоты кадров приложения.

var mySound:Sound = new Sound();
var channel:SoundChannel = new SoundChannel();

addEventListener(Event.ENTER_FRAME, loop);
channel = mySound.play(150);

function loop(e:Event):void {
   if (channel.position >= 500) {
      channel.stop();
   }
}
0 голосов
/ 25 апреля 2011

К сожалению, не может быть никакого хорошего способа сделать это.Один из обходных путей может заключаться в создании таймера и остановке при запуске обработчика таймера.Примерно так:

sndChannel = mySound.play(200);
var stopTimer:Timer = new Timer(500, 1);   // stop after 500ms
stopTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onStopTimer);
stopTimer.start();

private function onStopTimer(evt:TimerEvent):void {
    sndChannel.stop();
}

Действительно не очень хорошее и точное решение, но на практике это может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...