首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用OSMF处理NetStatusEvents

如何使用OSMF处理NetStatusEvents
EN

Stack Overflow用户
提问于 2011-07-12 21:26:08
回答 3查看 2.6K关注 0票数 0

我正在开发一个使用OSMF库的视频播放器。我有一个问题,我有时会失去与服务器的连接。因此,我设置了一个对象来监视到服务器的连接,在连接断开的情况下,它在放弃连接之前尝试重新连接有限的次数。一切都很好,除了我在调试版播放器上得到的消息:

错误#2044:未处理的NetStatusEvent:。level=error,code=NetStream.Play.StreamNotFound

我确实有一个继承自HTTPStreamingNetLoader的对象,它覆盖processFinishLoading方法,获取netStream并侦听网络状态事件。如下所示:

代码语言:javascript
复制
override protected function processFinishLoading(loadTrait:NetStreamLoadTrait):void
   {    
            netStream = loadTrait.netStream as HTTPNetStream;
            netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
    ...
    }

但我还是得到了错误。onNetStatus方法获取NETSTREAM_BUFFER_EMPTY、NETSTREAM_BUFFER_FULL或NETSTREAM_PLAY_START等事件,但不获取NETSTREAM_PLAY_STREAMNOTFOUND事件。您知道如何处理这些事件吗?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-13 00:42:25

代码语言:javascript
复制
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandle

public function netStatusHandler(e:NetStatusEvent):void{
  switch (e.info.code){
    case "NetStream.Seek.InvalidTime":
        trace('seek was to far')
      break;
    case "NetStream.Play.StreamNotFound":
        trace("Unable to locate video");
      break;
  }
} 
票数 0
EN

Stack Overflow用户

发布于 2012-07-07 18:36:14

您可以从mediaElement获取它

代码语言:javascript
复制
mediaElement.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);

然后,

代码语言:javascript
复制
private function onTraitAdd(event:MediaElementEvent):void
{
  trace(" [add]", event.toString()); 
  if (event.traitType == MediaTraitType.LOAD)
  {

    if (mediaElement.hasTrait(MediaTraitType.LOAD))
    {
      netStreamLoadTrait = mediaElement.getTrait(MediaTraitType.LOAD) as NetStreamLoadTrait;
      netStreamLoadTrait.addEventListener(LoadEvent.LOAD_STATE_CHANGE, onLoaded);

    }
  }
}


private function onLoaded(event:LoadEvent):void
{
  netStream = netStreamLoadTrait.netStream;
  netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
}
票数 4
EN

Stack Overflow用户

发布于 2011-10-21 07:22:38

您可以监听MediaPlayer状态更改:

代码语言:javascript
复制
mediaPlayer.addEventListener( MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, onMediaPlayerStateChange, false, 0, true);

..。

代码语言:javascript
复制
private function onMediaPlayerStateChange(e:MediaPlayerStateChangeEvent):void
{
    _mediaState = e.state;      

    switch (_mediaState) 
    {
        case MediaPlayerState.READY:                        
        break;

        case MediaPlayerState.BUFFERING:
        break;

        case MediaPlayerState.LOADING:
        break;

        case MediaPlayerState.PAUSED:
        break;  

        case MediaPlayerState.PLAYING:
        break;  

        case MediaPlayerState.PLAYBACK_ERROR:
        break;

        case MediaPlayerState.UNINITIALIZED:
        break;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6664893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档