Problèmes avec player pour webradio.

SteppenWulf Messages postés 5 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 25 mars 2011 - 23 mars 2011 à 19:42
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 25 mars 2011 à 23:12
Bonsoir,

J'essaie de créer un player pour écouter ma webradio...

Mais je rencontre des problèmes.

( Je suis un Newbie, j'utilise flash depuis ce weekend, je pique des codes par ci, par là, ... )


Problème 1 :
J'appuie sur "Play" > J'entends la radio
J'appuie sur "Stop" > La radio s'arrête
Et lorsque j'appuie une nouvelle fois sur le bouton "Play" la musique redémarre au début et non, là où je l'ai stoppée.


Problème 2 :
Ma barre de volume ne fonctionne pas ( N'augmente, ni baisse le son )


Attention les yeux... THE script of the dead!
( Merci de ne pas rigoler, ni de critiquer! ^^ )


import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import fl.events.SliderEvent;


var myMusic:Sound = new Sound();
var soundFile:URLRequest = new URLRequest("http://blablabla:8000/blablabla.mp3");
var channel:SoundChannel = new SoundChannel();
var sTransform:SoundTransform =new SoundTransform();
var bufferTime:int = 6500; // 6,5 secondes de Buffer.
var bouton_play_alpha:Number;
myMusic.load(soundFile);
btnStop.alpha = 0;


btnPlay.addEventListener(MouseEvent.CLICK, playMusic);
btnStop.addEventListener(MouseEvent.CLICK, stopMusic);
sldVolume.addEventListener(SliderEvent.CHANGE, changeVolume);

function changeVolume(evt:SliderEvent):void
{
sTransform.volume =sldVolume.value;
channel.soundTransform = sTransform;
}

function playMusic(evt:MouseEvent):void
{
channel = myMusic.play();

btnStop.alpha = 1;
btnPlay.width = 0;

}

function stopMusic(evt:MouseEvent):void
{
channel.stop();

btnPlay.alpha = 1;
btnPlay.width = 68;
btnPlay.height = 64;
btnStop.alpha = 0;

}



Et le script se trouvant dans le calque de la barre de volume :

var knobWidth:Number = sliderKnob.width;
var trackWidth:Number = sliderTrack.width;
var trackX:Number = sliderTrack.x;
var boundWidth = trackWidth - knobWidth;
var boundsRect:Rectangle = new Rectangle(trackX, 0, boundWidth, 0);

sliderKnob.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
function startDragging(event:MouseEvent){
sliderKnob.startDrag(false, boundsRect);
}

sliderKnob.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
sliderKnob.addEventListener(MouseEvent.MOUSE_OUT, stopDragging);
function stopDragging(event:MouseEvent){
sliderKnob.stopDrag();
}



Si quelqu'un peut m'éclairer, ce serait super sympa !


Si vous avez des questions ( Même si j'attends des réponses :P ) n'hésitez pas.


En vous remerciant.

8 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
23 mars 2011 à 22:05
Bonsoir... petit cours de "choses" :

La différence entre un fichier mp3 et un flux de webradio (même en mp3), c'est que le fichier à un début qui est toujours le même ...

Lire un flux, l'arrêter et le relire fera que tu liras à l'instant T où le flux à été demandé.
Essaie, tu verras ...

Peg'
0
SteppenWulf Messages postés 5 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 25 mars 2011
23 mars 2011 à 22:46
Merci de ta réponse Pegase.


Je me suis mal exprimé...

Et lorsque j'appuie une nouvelle fois sur le bouton "Play" la musique redémarre au début et non, là où je l'ai stoppée.


Lorsque je rappuie sur "Play" la musique redémarre où le flux à été demandé.

J'ai essayé de changer les actions "stop" par "pause" mais j'ai des erreurs dans mon script.

*Boulet*
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
23 mars 2011 à 22:56
Normal, car il n'y a pas de "pause", ce qu'il faut faire c'est lorsque tu passes en "pause", c'est de garder en mémoire le temps écoulé dans le flux et de redemander l'offset lors du relancement flux.
Pour plus d'info, réfère toi à la doc de Sound.play().

Peg'
0
SteppenWulf Messages postés 5 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 25 mars 2011
23 mars 2011 à 23:13
Je te redis quoi demain...

J'ai le cerveau en compote, là. ( Pas l'habitude de réfléchir )

Encore merci pour les infos.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SteppenWulf Messages postés 5 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 25 mars 2011
24 mars 2011 à 17:12
J'ai regardé la doc et je suis tombé là dessus :


Pause et reprise d’un son

Si votre application lit des sons longs (chansons ou podcasts, par exemple), vous pouvez permettre aux utilisateurs d’interrompre et de reprendre leur lecture. Il est impossible d’interrompre littéralement un son pendant la lecture dans ActionScript ; vous pouvez uniquement l’arrêter. Néanmoins, un son peut être lu à partir de n’importe quel point. Vous pouvez enregistrer la position du son au moment de l’arrêt puis le relire ultérieurement à partir de cette position.

Par exemple, supposons que votre code charge et lit un fichier audio de la façon suivante :

[b]var snd:Sound = new Sound(new URLRequest("bigSound.mp3"));
var channel:SoundChannel = snd.play();/b

Lors de la lecture du son, la propriété SoundChannel.position indique le point dans le fichier audio qui est en cours de lecture. Votre application peut stocker la valeur de position avant d’arrêter la lecture du son, comme suit :

[b]var pausePosition:int = channel.position;
channel.stop();/b

Pour reprendre la lecture du son, transmettez la valeur de position stockée précédemment pour relancer le son à partir du même point d’arrêt précédent.

channel = snd.play(pausePosition);



J'ai rajouté les lignes et ca me met des erreurs.


Est ce le bon code?
Si oui, je dois incorporer les lignes à quels endroits?





Pour la barre de volume ca avance... Encore 2, 3 petites choses.
* croise les doigts *
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
25 mars 2011 à 01:14
si tu as copié/collé bêtement ces lignes, il est clair qur tu auras une erreur ..

Peg'
0
SteppenWulf Messages postés 5 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 25 mars 2011
25 mars 2011 à 22:55
Oui, j'ai copié bêtement ces lignes... J'ai même oublié de renseigner l'adresse du flux... De l'adapter à mon code déjà existant.

Pégase, franchement...
J'ai fait plusieurs essais, modifier du code.

Je suis venu ici pour trouver de l'aide car je me tire les cheveux depuis une semaine.

Tu crois que ton message ci-dessus va me faire avancer?
Tu ne pourrais pas plus m'éclairer?
Me dire là ça ne va pas... Mets ça à la place?

Bah... Non.

Je te remercie des "précieux" renseignements que tu m'as donné et félicitations tu viens de rebuter un débutant en 3 messages.
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
25 mars 2011 à 23:12
Je n'ai fais que lire ce que tu marques "J'ai rajouté les lignes et ca me met des erreurs. ".
Excuse-moi de ne pas avoir compris que "rajouter" pour toi voulais dire "adapter".

Et c'est effectivement cette méthode (dans les grandes lignes) qu'il faut que tu intègres avec un ajout d'event pour le play/pause sur le bouton approprié.
Après il serait bon de vérifier si un flux à réellement une "position" ou pas ... là j'ai un doute.

Peg'
0
Rejoignez-nous