Flex中如何利用metadataReceived函数从FLV文件中抓去metadata的例子
By Minidxer | September 21, 2008
接下来的例子演示了Flex中如何利用metadataReceived函数,从FLV文件中抓去metadata。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white" viewSourceURL="srcview/index.html">
- <mx:Script>
- <![CDATA[
- import mx.events.MetadataEvent;
- import mx.utils.ObjectUtil;
- private const VIDEO_URL:String = "http://blog.minidx.com/ext/cuepoints.flv";
- private function videoDisplay_metadataReceived(evt:MetadataEvent):void {
- var arr:Array = [];
- var item:String;
- var meta:Object = evt.info; // videoDisplay.metadata;
- var value:*;
- for (item in meta) {
- if (ObjectUtil.isSimple(meta[item])) {
- if (meta[item] is Array) {
- value = "[Array]";
- } else {
- value = meta[item]
- }
- arr.push({name:item, value:value});
- }
- }
- arr.sortOn("name", Array.CASEINSENSITIVE);
- dataGrid.dataProvider = arr;
- dataGrid.visible = true;
- }
- ]]>
- </mx:Script>
- <mx:Button label="Click here to load video"
- click="videoDisplay.source = VIDEO_URL;" />
- <mx:VideoDisplay id="videoDisplay"
- visible="false"
- ready="videoDisplay.visible = true;"
- metadataReceived="videoDisplay_metadataReceived(event);" />
- <mx:DataGrid id="dataGrid"
- visible="false"
- width="100%"
- height="100%" >
- <mx:columns>
- <mx:DataGridColumn dataField="name"
- headerText="Name:"
- sortable="false" />
- <mx:DataGridColumn dataField="value"
- headerText="Value:"
- sortable="false" />
- </mx:columns>
- </mx:DataGrid>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Flex |
Tags: metadata, MetadataEvent, metadataReceived, VideoDisplay