2011-06-29 69 views
1

我正在构建一个非常简单的播放器,并在MediaPlayer上设置了一个缓冲区大小(mediaPlayer.bufferTime = BUFFER_TIME)。这是工作,但我想显示一个图形,每当它开始缓冲。我在我的mediaplayer上有一个Event Listener来显示和隐藏,但它似乎没有正常工作。这样做的最好方法是什么?使用OSMF设置缓冲区图形

这是我从一个样品,我发现某处有---

mediaPlayer.addEventListener (MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, _onMediaPlayerStateChange, false, 0, true); 

function _onMediaPlayerStateChange(evt:MediaPlayerStateChangeEvent):void { 
    trace ("_onMediaPlayerStateChange() , evt.state : " + evt.state); 
    switch (evt.state) { 
     case "playing" : 
      posterButton.visible = false; 
      img.visible = false; 
      onPlaying(); 
      break; 
     case "loading" : 
      // 
      break; 
     case "buffering" : 
      onBuffering(); 
      break; 
     case "uninitialized" : 
      // 
      break; 
     case "ready" : 
      // 
      break; 
     default : 
      break; 
    } 
} 

function onBuffering():void { 
    trace("BUFFERING"); 
    bImg.visible = true; 
} 
function onPlaying():void { 
    trace("PLAYING"); 
    bImg.visible = false; 
} 

回答

3

尝试设置上MediaPlayerBUFFERING_CHANGE事件侦听器:

_mediaPlayer.addEventListener(BufferEvent.BUFFERING_CHANGE, 
    bufferingChangeHandler); 

...

private function bufferingChangeHandler(e: BufferEvent): void 
{ 
    trace("buffering " + (_mediaPlayer.buffering ? "in progress" : "finished")); 
    _ui.isWaiting = _mediaPlayer.buffering; 
} 
+1

谢谢,这很好! –