Flash Builder 4.5.1移动项目中嵌入元数据的时间限制是多少?

23

我正在开发一个项目,需要在从网络摄像头录制的流媒体中即时嵌入元数据。我使用 Flash Builder 4.5.1 创建了一个移动项目,使用简单的 netStream.send 函数设置所需的元数据。这个方法很好用,但是当我的 netstream 时间超过大约10秒时,该函数将不再起作用或无法嵌入到视频中。所有连接都是正确的,我可以将其记录到 Flash Media Server。

我能想到的唯一问题是我的 Flash Media Server 4 开发版负载过高,无法计算我发送的元数据。

希望有任何想法。

 private function sendMetadata():void {


                 infotxt.text += 'called';
                trace("sendMetaData() called")
                myMetadata = new Object();
                myMetadata.customProp = "This message is sent by @setDataFrame.";
                myMetadata.customOther = cueHolder;
                ns.send("@setDataFrame", "onMetaData", myMetadata);
            }  

以下是我的 onMetaData 函数

public function onMetaData(info:Object):void { 
                trace("caught");
                infotxt.text = 'caught';
                var key:String;
                for (key in info){ 
                    outputWindow.text +=(key + ": " + info[key] + "\n"); 
                }
                //cueHolderReturn = info.customOther;
                 for (var i:int = 0; i < info.customOther.length; i++) 
                {
                    infotxt.text += info.customOther[i]
                } 

                //infotxt.text = info.customOther[0];




            }

2
+1 是因为我认为你的代码有助于解释问题。您是否使用过像ServiceCapture或Flash Builder网络监视器这样的程序来查看来回传递的内容? - JeffryHouser
我不确定这是否有帮助,但您是否尝试在添加新的数据关键帧之前清理数据关键帧?在_sendMetadata_方法的开头添加:ns.send("@clearDataFrame", "onMetaData");(还要在_onMetaData_上添加对info == null的验证)。 - bmleite
你什么时候发送元数据?比如,多久发送一次? - J_A_X
J_A_X 我试图仅添加一次元数据。我正在视频中存储时间戳,当收集所有时间戳时,我希望将该时间戳数组存储为元数据。但是只有在录制前10秒发送邮票才能正常工作。 - Nikeah
bmleite - 我尝试了 clearDataFrame,但它只是关闭了我的 netConnection。不过还是谢谢你的建议,我会使用验证的方法。 - Nikeah
1个回答

1

请问一下,这个问题是在真实的移动设备和移动模拟器上都出现了吗?如果不是,可能是移动连接的问题 - 希望对你有帮助。


它在两个设备和模拟器上都发生了。 - Nikeah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接