求不工作在Flex 4.5中的NetStream的字节数组 [英] seeking not working in flex 4.5 netStream byteArray

查看:235
本文介绍了求不工作在Flex 4.5中的NetStream的字节数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Flex 4.5中发挥FLV视频文件的NetStream的字节数组。下面是什么我做的是:

I am trying to play a flv video file in flex 4.5 with netStream byteArray. What I am doing is below:

  1. 创建一个NetStream和视频对象
  2. 在附加一个NetStream的视频
  3. 阅读FLV文件的字节数组
  4. 在附加的字节数组中的NetStream使用对appendBytes法
  5. 播放视频

在这种情况下播放,暂停,停止功能工作正常视频。

In this scenario Play, Pause, Stop functionalities are working fine with video.

但是,当我试图寻找的视频,然后它不工作。

But when I am trying to seeking in video then it is not working.

您可以按照code什么,我通过单击链接 http://pastebin.com/fZp0mKDs做

You can follow the code what I am doing by clicking on the link http://pastebin.com/fZp0mKDs

谁能告诉我,在这里我我错了落实求。

Can anybody tell me, where am I am going wrong to implement seeking.

任意code样品或任何形式的帮助将是AP preciated。

Any code sample or any kind of help would be appreciated.

推荐答案

我得到的code以下的工作在我的情况

I got, the code below worked in my case

// onmetadata function get all timestamp and corresponding fileposition..
function onMetaData(informationObject:Object):void 
{
    for (var propertyName:String in informationObject) 
    {
        if (propertyName == "keyframes")
        {
            var kfObject:Object = informationObject[propertyName];
            var timeArray:Array = kfObject["times"];
            var filePositionArray:Array = kfObject["filepositions"];

            for(var i:int=0;i<timeArray.length;i++)
            {
                var tagPosition:int = filePositionArray[i];//Read the tag size;
                var timestamp:Number = timeArray[i];//read the timestamp;
                tags.push({timestamp:timestamp,tagPosition:tagPosition});
            }
        }
    }
}

// onseek click get approximate timestamp and its fileposition
protected function seek_click(seektime:Number):void
{
    var currentTime:Number = 0;
    var previousTime:Number = 0;

    for (var i:int=1; i<tags.length; i++)
    {
        currentTime = tags[i].timestamp;
        previousTime = tags[i-1].timestamp;

        if(previousTime < seektime)
        {
            if(seektime < currentTime)
            {
                seekPos = tags[i-1].tagPosition;
                stream.seek(previousTime);
                break;
            }
        }
    }
}


// append bytes on seekposition
private function netStatusHandler(event:NetStatusEvent):void 
{
    switch (event.info.code) 
    {
        case "NetStream.Seek.Notify" :

        stream.appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK);
        totalfilePositionArray.position = seekPos;

        var bytes:filePositionArray = new filePositionArray();

        totalfilePositionArray.readBytes(bytes);
        stream.appendBytes(bytes);

        stream.resume();

        break;
    }
}

有关注入元数据关键帧到FLV文件。使用一些注入工具,铁。 FLV元注射器

For inject MetaData keyframes into flv file.Use some injector tool, fe. FLV MetaData Injector

http://www.buraks.com/flvmdi/

这篇关于求不工作在Flex 4.5中的NetStream的字节数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆