Hello There,
On the first frame of my timeline is the code for an MP3 player that exists in the 4 following frames, which are separated by frame labels. I am trying to call a different Mp3 URL in each different frame, but am getting this error msg: TypeError: Error #2007: Parameter url must be non-null.
Here is the code on the 1st frame:
var sndObject:Sound = new Sound();
var chaObject:SoundChannel = new SoundChannel() ;
var sndTransform:SoundTransform = new SoundTransform();
var reqObject:URLRequest = new URLRequest();
var sndBytes:ByteArray = new ByteArray();
var intPosition:int = 0;
var bolStop:Boolean = true;
function initMP3Player(reqObject:String):void {
// set event listeners
//addEventListener(Event.ENTER_FRAME, renderSpectrum);
var sndObject:Sound = new Sound();
var chaObject:SoundChannel = new SoundChannel() ;
var sndTransform:SoundTransform = new SoundTransform();
//var reqObject:URLRequest = new URLRequest();
var sndBytes:ByteArray = new ByteArray();
var intPosition:int = 0;
var bolStop:Boolean = true;
addEventListener(Event.ENTER_FRAME, calcProgress);
this.mcMp3Player.btnStop.addEventListener(MouseEvent.CLICK, stopPlayback);
this.mcMp3Player.btnPause.addEventListener(MouseEvent.CLICK, pausePlayback);
this.mcMp3Player.btnPlay.addEventListener(MouseEvent.CLICK, startPlayback);
this.mcMp3Player.btnMute.addEventListener(MouseEvent.CLICK, mutePlayback);
this.mcMp3Player.btnUnmute.addEventListener(MouseEvent.CLICK, unmutePlayback);
this.mcMp3Player.progress.addEventListener(MouseEvent.CLICK, setNewProgress);
// use hand cursor for progress bar
this.mcMp3Player.progress.buttonMode = true;
this.mcMp3Player.btnPause.visible = false;
this.mcMp3Player.btnUnmute.visible = false;
}
function stopPlayback(e:MouseEvent):void {
chaObject.stop();
sndObject = new Sound();
bolStop = true;
intPosition = 0;
this.mcMp3Player.btnPlay.visible = true;
this.mcMp3Player.btnPause.visible = false;
}
function pausePlayback(e:MouseEvent):void {
this.mcMp3Player.btnPlay.visible = true;
this.mcMp3Player.btnPause.visible = false;
playSound(false);
}
function startPlayback(e:MouseEvent):void {
this.mcMp3Player.btnPlay.visible = false;
this.mcMp3Player.btnPause.visible = true;
playSound();
}
function mutePlayback(e:MouseEvent):void {
this.mcMp3Player.btnMute.visible = false;
this.mcMp3Player.btnUnmute.visible = true;
setVolume(0);
}
function unmutePlayback(e:MouseEvent):void {
this.mcMp3Player.btnMute.visible = true;
this.mcMp3Player.btnUnmute.visible = false;
setVolume(1);
}
function setNewProgress(e:MouseEvent):void {
var p:int = sndObject.length * e.currentTarget.mouseX / 220;
chaObject.stop();
chaObject = sndObject.play(p);
this.mcMp3Player.btnPlay.visible = false;
this.mcMp3Player.btnPause.visible = true;
}
function playSound(bolPlay:Boolean = true):void {
if(bolPlay) {
if(bolStop) {
// load mp3 file if playback has been stopped
sndObject.load(reqObject);
bolStop = false;
} else {
intPosition = chaObject.position;
}
chaObject = sndObject.play(intPosition);
} else {
chaObject.stop();
}
}
function setVolume(intVolume:int = 1):void {
sndTransform.volume = intVolume;
chaObject.soundTransform = sndTransform;
}
function calcProgress(e:Event):void {
var p:MovieClip = this.mcMp3Player.progress.mcProgressFill;
var w:int = Math.round( 220 * chaObject.position / sndObject.length);
p.width = w;
}
And this is how I am calling it on 4 following frames:
initMP3Player("http://samueldixon.com/music/Let_Go.mp3");
Can anyone see what I am doing wrong I am really struggling to work it out!
Thanks in advance for any help!
Doodark x