Petit Up...
Bon voilà, j'ai cherché partout, je ne trouve personne qui a le même problème que moi... Le problème
vient donc de moi, enfin du code AS3 de mon player je présume... Je rappel que depuis que j'ai installé Flash
Player 10 sur mon poste, mon player ne lie plus les fichier mp3...
Action Script
package {
import flash.events.*;
import fl.events.ListEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.display.LoaderInfo;
public class Mp3Main extends MovieClip{
public var keyStr:String;
public var valueStr:String;
public var paramObj:Object = LoaderInfo(parent.loaderInfo).parameters;
public var url:URLRequest;
public var xmlLoad:URLLoader;
public var musicXML:XML;
public var texteXML:String;
public var song:Sound;
public var channel:SoundChannel;
public var sndTrans:SoundTransform;
public var position:Number;
/*The constructor mainly sets up the event listeners, but it also
starts loading the XML playlist file.*/
public function Mp3Main() {
position = 0;
sndTrans = new SoundTransform(vol_mc.percent);
for (keyStr in paramObj) {
valueStr = String(paramObj[keyStr]);
url = new URLRequest(valueStr);
}
xmlLoad = new URLLoader(url);
xmlLoad.addEventListener(Event.COMPLETE, xmlComplete);
playList.addEventListener(ListEvent.ITEM_CLICK, SnglClick, false, 0, true);
vol_mc.addEventListener("volume_change", updateVolume, false, 0, true);
seek_mc.addEventListener("seek_change", changeSeekBar, false, 0, true);
/*****************Button Event Listeners************************/
playPause_mc.addEventListener(MouseEvent.MOUSE_OVER, PlayOver);
playPause_mc.addEventListener(MouseEvent.MOUSE_OUT, PlayOut);
playPause_mc.addEventListener(MouseEvent.MOUSE_DOWN, PlayDown);
playPause_mc.addEventListener(MouseEvent.MOUSE_UP, PlayUp);
stop_mc.addEventListener(MouseEvent.MOUSE_OVER, StopOver);
stop_mc.addEventListener(MouseEvent.MOUSE_OUT, StopOut);
stop_mc.addEventListener(MouseEvent.MOUSE_DOWN, StopDown);
stop_mc.addEventListener(MouseEvent.MOUSE_UP, StopUp);
mute_mc.addEventListener(MouseEvent.MOUSE_OVER, MuteOver);
mute_mc.addEventListener(MouseEvent.MOUSE_OUT, MuteOut);
mute_mc.addEventListener(MouseEvent.MOUSE_DOWN, MuteDown);
mute_mc.addEventListener(MouseEvent.MOUSE_UP, MuteUp);
back_mc.addEventListener(MouseEvent.MOUSE_OVER, BackOver);
back_mc.addEventListener(MouseEvent.MOUSE_OUT, BackOut);
back_mc.addEventListener(MouseEvent.MOUSE_DOWN, BackDown);
back_mc.addEventListener(MouseEvent.MOUSE_UP, BackUp);
forward_mc.addEventListener(MouseEvent.MOUSE_OVER, ForwardOver);
forward_mc.addEventListener(MouseEvent.MOUSE_OUT, ForwardOut);
forward_mc.addEventListener(MouseEvent.MOUSE_DOWN, ForwardDown);
forward_mc.addEventListener(MouseEvent.MOUSE_UP, ForwardUp);
}
/*This function is used to display the minutes and seconds of the current song.
It is only used in the updateSeek() function.*/
public function formatTime(time:Number):String {
var min:String = Math.floor(time/60000).toString();
var sec:String = (Math.floor((time/1000)%60) < 10)? "0" + Math.floor((time/1000)%60).toString() : Math.floor((time/1000)%60).toString();
return(min+":"+sec);
}
/***********************Event Handlers****************************/
/*I want to start loading the first song right after filling the
List component. If you want it to play automaticly, here is where
you do that.*/
private function xmlComplete(event:Event):void {
var item:Object;
var clip_vide:String;
var clip_vide2:String;
musicXML = new XML(event.currentTarget.data);
for each(var prop:XML in musicXML.song){
item = new Object();
item.label = prop.@disp;
item.data = prop.@id;
playList.addItem(item);
clip_vide = prop.@avatar;
UIavatar.source = clip_vide;
clip_vide2 = prop.@pochette;
UIpochette.source = clip_vide2;
monTextField.text = prop.@cd +"\r\n"+ prop.@descr +"\r\n"+prop.@an_sortie;
}
song = new Sound();
song.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true);
song.load(new URLRequest(playList.getItemAt(0).data));
this.addEventListener(Event.ENTER_FRAME, updateSeek, false, 0, true);
playList.selectedIndex = 0;
}
/*When you choose a new item on the List it will play for you.*/
private function SnglClick(event:ListEvent):void {
var item:Object = event.item;
try
{song.close();}
catch(error)
{}
try
{channel.stop();}
catch(error)
{}
song = new Sound();
song.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true);
song.load(new URLRequest(item.data));
channel = song.play();
channel.soundTransform = (mute_mc.isMute)? new SoundTransform(0) : sndTrans;
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true);
position = 0;
playPause_mc.playing = true;
playPause_mc.gotoAndStop('pause');
}
/*When a song ends, this will take you to the next song.*/
private function soundComplete(event:Event):void {
if(playList.length > playList.selectedIndex + 1){
playList.selectedIndex++;
playList.scrollToSelected();
} else {
playList.selectedIndex = 0;
playList.scrollToSelected();
}
playList.dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, 0, playList.selectedIndex, playList.selectedIndex, playList.selectedItem));
}
/*The next two are called handling custom events from within SeekControl.as
and VolControl.as*/
private function updateVolume(event:Event):void {
sndTrans.volume = vol_mc.percent;
channel.soundTransform = (mute_mc.isMute)? new SoundTransform(0) : sndTrans;
}
private function changeSeekBar(event:Event):void {
position = (song.length/(song.bytesLoaded/song.bytesTotal)) * seek_mc.percent;
if(playPause_mc.playing){
channel.stop();
channel = song.play(position);
channel.soundTransform = (mute_mc.isMute)? new SoundTransform(0) : sndTrans;
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true);
}
}
private function updateSeek(event:Event):void {
if(channel != null && playPause_mc.playing) {
var perc:Number = channel.position / (song.length/(song.bytesLoaded/song.bytesTotal));
seek_mc.moveSeekPos(perc);
display_mc.timeDisp.text = formatTime(channel.position) + " | " + formatTime((song.length/(song.bytesLoaded/song.bytesTotal)));
}else {
display_mc.timeDisp.text = formatTime(position) + " | " + formatTime((song.length/(song.bytesLoaded/song.bytesTotal)));
}
}
private function ioErrorHandler(event:Event):void {
trace("ioErrorHandler: " + event);
}
/*******************PlayPause Handlers*************************/
private function PlayOver(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.playing) {
obj.gotoAndStop('pause_over');
} else {
obj.gotoAndStop('play_over');
}
}
private function PlayOut(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.playing) {
obj.gotoAndStop('pause');
} else {
obj.gotoAndStop('play');
}
}
private function PlayDown(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.playing) {
obj.gotoAndStop('pause_down');
} else {
obj.gotoAndStop('play_down');
}
}
/*Needs to switch between a pause and play button.*/
private function PlayUp(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.playing) {
obj.gotoAndStop('play_over');
position = channel.position;
channel.stop();
obj.playing = false;
} else {
obj.gotoAndStop('pause_over');
channel = song.play(position);
channel.soundTransform = (mute_mc.isMute)? new SoundTransform(0) : sndTrans;
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true);
obj.playing = true;
}
}
/********************Stop Handlers************************/
private function StopOver(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('stop_over');
}
private function StopOut(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('stop');
}
private function StopDown(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('stop_down');
}
/*Needs to change the Play button as well.*/
private function StopUp(event:MouseEvent):void {
var obj:Object = event.currentTarget;
channel.stop();
position = 0;
playPause_mc.playing = false;
playPause_mc.gotoAndStop('play');
obj.gotoAndStop('stop_over');
}
/********************Mute Handlers************************/
private function MuteOver(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.isMute) {
obj.gotoAndStop('unmute_over');
} else {
obj.gotoAndStop('mute_over');
}
}
private function MuteOut(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.isMute) {
obj.gotoAndStop('unmute');
} else {
obj.gotoAndStop('mute');
}
}
private function MuteDown(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.isMute) {
obj.gotoAndStop('unmute_down');
} else {
obj.gotoAndStop('mute_down');
}
}
private function MuteUp(event:MouseEvent):void {
var obj:Object = event.currentTarget;
if(obj.isMute) {
obj.gotoAndStop('mute_over');
obj.isMute = false;
channel.soundTransform = sndTrans;
} else {
obj.gotoAndStop('unmute_over');
obj.isMute = true;
channel.soundTransform = new SoundTransform(0);
}
}
/********************Back Handlers************************/
private function BackOver(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('back_over');
}
private function BackOut(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('back');
}
private function BackDown(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('back_down');
}
/*changes the List selection and then dispatches a fake ITEM_CLICK event.*/
private function BackUp(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('back_over');
if(channel.position < 1500){
if(playList.selectedIndex == 0){
playList.selectedIndex = playList.length -1;
playList.scrollToSelected();
} else {
playList.selectedIndex--;
playList.scrollToSelected();
}
playList.dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, 0, playList.selectedIndex, playList.selectedIndex, playList.selectedItem));
}else {
try
{channel.stop();}
catch(error)
{}
position = 0;
if(playPause_mc.playing) {
channel = song.play(0);
channel.soundTransform = (mute_mc.isMute)? new SoundTransform(0) : sndTrans;
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete, false, 0, true);
}
}
}
/********************Forward Handlers************************/
private function ForwardOver(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('forward_over');
}
private function ForwardOut(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('forward');
}
private function ForwardDown(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('forward_down');
}
/*changes the List selection and then dispatches a fake ITEM_CLICK event.*/
private function ForwardUp(event:MouseEvent):void {
var obj:Object = event.currentTarget;
obj.gotoAndStop('forward_over');
if(playList.length > playList.selectedIndex + 1){
playList.selectedIndex++;
playList.scrollToSelected();
} else {
playList.selectedIndex = 0;
playList.scrollToSelected();
}
playList.dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, 0, playList.selectedIndex, playList.selectedIndex, playList.selectedItem));
}
}
}
Ca fait long, je sais... Désolé
Si toutefois une personne voyais ce qui peut clocher dans mon code pour qu'il y ait ce problème, je suis preneur...
Merci d'avance à tous ceux qui ont lu ce post.