Comunidad de diseño web y desarrollo en internet online

Error de scrubbing en audioplayer.

Citar            
MensajeEscrito el 17 Ene 2008 04:48 pm
Estoy teniendo un error con el scrubbing de un audioplayer que estoy programando.
Tengo una clase mp3player que es la que controla el audio, otra clase para el timeBar (que es donde está el scrubb (sí, la ruedita que arrastras)) y otra clase para la barra de volumen.

La actualización de la nueva posición del scrubb se lleva por los eventos EnterFrame tanto de la clase mp3player como de la timeBar.

Evento EnterFrame de la clase mp3player:

Código :

       private function onMp3PlayerEnterFrame(e:Event):void{
         if(_timeBar.scrubberStatus=="notdragging"){
           _timeBar.currentTime=_soundChannel.position;
           _timeBar.totalTimeofSong=_actualSong.length;
             _currentTimeText.text=getTimeString(_timeBar.currentTime);
         }
         else if(_timeBar.scrubberStatus=="released"){
            if(_status=="playing"){
                 _soundChannel.stop(); 
              _timeBar.scrubberStatus="notdragging";
              _soundChannel=_actualSong.play(_timeBar.currentTime);   

            }
            else if(_status=="paused"){
               _pauseTime=_timeBar.currentTime;
             _soundChannel.stop();
            }
         }
         
             if(_status=="playing"){
            _bPlay.visible=false;
            _bPause.visible=true;
          }
          else{
             _bPlay.visible=true;
            _bPause.visible=false;  
          }
      }




Y eventos EnterFrame, onMouseDown y onRelease de la clase timeBar:


Código :

      private function onTimeBarEnterFrame(e:Event):void{
         _scrubber.x=_BG.width*(_currentTime/_totalTime);   
      }
      
      private function onMouseDownScrubber(e:Event):void{
         if (_timeBar.hasEventListener(Event.ENTER_FRAME)){
            _timeBar.removeEventListener(Event.ENTER_FRAME,onTimeBarEnterFrame);
         }
         // start scrubb dragging 
         e.target.startDrag(false,_rectArea);         
         _status="dragging";
      }
      
      private function releaseScrubber(e:Event):void{
         e.target.stopDrag();
         _currentTime=(_scrubber.x*_totalTime)/_BG.width;
         trace("              _currentTime = "+_currentTime);
         if(!_timeBar.hasEventListener(Event.ENTER_FRAME)){
               _timeBar.addEventListener(Event.ENTER_FRAME,onTimeBarEnterFrame);            
         }
         _status="released";
      }



Voy a intentar con Timers en vez de EnterFrames, sospecho que esto me pasa por el desfase de frame rates.

Aquí les dejo un video de lo que sucede.



Bienvenida su ayuda .

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Ene 2008 11:26 pm
No, con los Timers sigue el problema, voy a intentar habilitando el scrubbing hasta que termine de cargar la canción como me aconsejó Zguillez...

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Ene 2008 04:46 pm
Uppss, tampoco funciona de esta forma (habilitando el scrubbing hasta que termine de cargarse la canción) :S!

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Ene 2008 06:40 pm
Al parecer era más que nada un problema de encoding en el mp3... ¿les ha sucedido esto antes? :oops:

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.