View comments | RSS feed

MovieClip.attachAudio()

Availability

Flash Player 6; the ability to attach audio from Flash Video (FLV) files was added in Flash Player 7.

Usage

my_mc.attachAudio(source:Object) : Void

Parameters

source The object containing the audio to play. Valid values are a Microphone object, a NetStream object that is playing an FLV file, and false (stops playing the audio).

Returns

Nothing.

Description

Method; specifies the audio source to be played. To stop playing the audio source, pass false for source.

You can extend the methods and event handlers of the MovieClip class by creating a subclass. For more information, see "Assigning a class to a movie clip symbol" in Using ActionScript in Flash.

Example

The following code creates a new NetStream connection. Add a new Video symbol by opening the Library panel and selecting New Video from the Library options menu. Give it the instance name my_video. Dynamically load the FLV video at runtime. Use the attachAudio() method to attach the audio from the FLV file to a movie clip on the Stage. Then you can control the audio in the movie clip using the Sound class and two buttons called volUp_btn and volDown_btn:

var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_video.attachVideo(my_ns);
my_ns.play("yourVideo.flv");
this.createEmptyMovieClip("flv_mc", this.getNextHighestDepth());
flv_mc.attachAudio(my_ns);
var audio_sound:Sound = new Sound(flv_mc);
// add volume buttons
volUp_btn.onRelease = function() {
   if (audio_sound.getVolume()<100) {
      audio_sound.setVolume(audio_sound.getVolume()+10);
      updateVolume();
   }
};
volDown_btn.onRelease = function() {
   if (audio_sound.getVolume()>0) {
      audio_sound.setVolume(audio_sound.getVolume()-10);
      updateVolume();
   }
};
// updates the volume
this.createTextField("volume_txt", this.getNextHighestDepth(), 0, 0, 100, 22);
updateVolume();
function updateVolume() {
   volume_txt.text = "Volume: "+audio_sound.getVolume();
}

The following example specifies a microphone as the audio source for a dynamically created movie clip instance called audio_mc:

var active_mic:Microphone = Microphone.get();
this.createEmptyMovieClip("audio_mc", this.getNextHighestDepth());
audio_mc.attachAudio(active_mic);

See also

Microphone class, NetStream.play(), Sound class, Video.attachVideo()


Comments


style11 said on Jan 10, 2005 at 9:11 AM :
Note that you do NOT attach the audio to the Video instance, but rather to a movieclip. It says this in the above documentation, but it isnt clear.
gc57 said on Apr 15, 2005 at 2:12 PM :
I have a problem with the above example.

this.createEmptyMovieClip("audio_mc");
audio_mc.attachAudio(ns);
var audio:Sound = new Sound(audio_mc);
audio.setVolume(20);
updateVolume();
function updateVolume() {
volume_txt.text = "Volume: "+audio.getVolume();
}

this work correctly for the video but will set also the volume to 20 for all
the other audio object on the main timeline in the root!

Also the above btn control the volume for the root audio object.

Is anybody else having this problem?

If somebody know why please help. Thanks in advance.
gC

 

RSS feed | Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/flash/mx2004/main_7_2/00001486.html