How can pause / play embed sound in AS3 flash

19,275

Solution 1

//number that is redefined when the pause button is hit
var pausePoint:Number = 0.00;

//a true or false value that is used to check whether the sound is currently playing
var isPlaying:Boolean;

//think of the soundchannel as a speaker system and the sound as an mp3 player
var soundChannel:SoundChannel = new SoundChannel();
var sound:Sound = new Sound(new URLRequest("SOUND.mp3"));

//you should set the xstop and xplay values to match the instance names of your stop button and play/pause buttons
xstop.addEventListener(MouseEvent.CLICK, clickStop);
xplay.addEventListener(MouseEvent.CLICK, clickPlayPause);

soundChannel = sound.play();
isPlaying = true;

function clickPlayPause(evt:MouseEvent) {
    if (isPlaying) {
        pausePoint = soundChannel.position;
        soundChannel.stop();
        isPlaying = false;
    } else {
        soundChannel = sound.play(pausePoint);
        isPlaying = true;
    }
}

function clickStop(evt:MouseEvent) {
    if (isPlaying) {
        soundChannel.stop();
        isPlaying = false;
    }
    pausePoint = 0.00;
}

Solution 2

I just did a test to see it works.

  1. I made a MovieClip that just has the sound on the timeline( timeline is long enough to hold all the sound)
  2. I've set the Sync to Stream from the Properties Panel on the layer that has the sound. This means that the sound will be in sync with the frames.
  3. I've added two buttons to test controlling the sound, which is just controlling the movie clip that holds the sound sice it's synched with the frames.

Here's the basic code:

//playBtn and pauseBtn are two basic buttons
//sound is the movie clip that holds the synched sound in its timeline
playBtn.addEventListener(MouseEvent.CLICK, playSound);
pauseBtn.addEventListener(MouseEvent.CLICK, pauseSound);

function playSound(event:MouseEvent):void{
    sound.play();
}
function pauseSound(event:MouseEvent):void{
    sound.stop();
}

Hope it helps

Share:
19,275
Admin
Author by

Admin

Updated on June 04, 2022

Comments

  • Admin
    Admin almost 2 years

    I have a sound with a length of 1:30 min. I embedded it into my swf and set it to sync with the frame. I need is to be able to pause and play this sound via ActionScript.

    Does anyone have any idea how to do this?

  • Sarah Himmler
    Sarah Himmler about 7 years
    Seven and a half years later and your answer just saved me after an hour of research! Thank you!!!