我正在开发一个使用OSMF库的视频播放器。我有一个问题,我有时会失去与服务器的连接。因此,我设置了一个对象来监视到服务器的连接,在连接断开的情况下,它在放弃连接之前尝试重新连接有限的次数。一切都很好,除了我在调试版播放器上得到的消息:
错误#2044:未处理的NetStatusEvent:。level=error,code=NetStream.Play.StreamNotFound
我确实有一个继承自HTTPStreamingNetLoader的对象,它覆盖processFinishLoading方法,获取netStream并侦听网络状态事件。如下所示:
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事件。您知道如何处理这些事件吗?谢谢。
发布于 2011-07-13 00:42:25
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;
}
} 发布于 2012-07-07 18:36:14
您可以从mediaElement获取它
mediaElement.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);然后,
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);
}发布于 2011-10-21 07:22:38
您可以监听MediaPlayer状态更改:
mediaPlayer.addEventListener( MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, onMediaPlayerStateChange, false, 0, true);..。
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;
}
}https://stackoverflow.com/questions/6664893
复制相似问题