首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻求在FLEX4.5 netStream byteArray中不工作

寻求在FLEX4.5 netStream byteArray中不工作
EN

Stack Overflow用户
提问于 2013-01-21 08:07:02
回答 2查看 758关注 0票数 2

我正在尝试发挥一个flv视频文件在FLEX4.5与netStream byteArray。我正在做的事情如下:

  1. 创建netStream和视频对象
  2. 用视频附加netStream
  3. 在byteArray中读取flv文件
  4. 使用“byteArray”方法在netStream中添加appendBytes
  5. 播放视频

在这个场景中,暂停、停止功能可以很好地处理视频。

但是当我试图在视频中寻找时,它就不起作用了。

您可以通过单击链接http://pastebin.com/fZp0mKDs来遵循我正在做的代码

有人能告诉我,我在哪里做错了实现的追求。

任何代码示例或任何类型的帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 06:13:11

我知道,下面的代码适用于我的情况

代码语言:javascript
复制
// 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;
    }
}

用于将MetaData关键帧注入flv file.Use的一些注入器工具,fe。FLV MetaData喷射器

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

票数 1
EN

Stack Overflow用户

发布于 2013-01-22 07:59:13

我认为在读取文件后构建的byteArray的查找中存在一个问题。只要直接播放你的netStream,就可以了:

代码语言:javascript
复制
var fileName:String = "dummy-video.flv";
ns.play(fileName);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14434579

复制
相关文章

相似问题

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