Flex中如何利用metadataReceived函数从FLV文件中抓去metadata的例子

By Minidxer | September 21, 2008

接下来的例子演示了Flex中如何利用metadataReceived函数,从FLV文件中抓去metadata。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white" viewSourceURL="srcview/index.html">
  6.  
  7.     <mx:Script>
  8.         <![CDATA[
  9.             import mx.events.MetadataEvent;
  10.             import mx.utils.ObjectUtil;
  11.  
  12.             private const VIDEO_URL:String = "http://blog.minidx.com/ext/cuepoints.flv";
  13.  
  14.             private function videoDisplay_metadataReceived(evt:MetadataEvent):void {
  15.                 var arr:Array = [];
  16.                 var item:String;
  17.                 var meta:Object = evt.info; // videoDisplay.metadata;
  18.                 var value:*;
  19.                 for (item in meta) {
  20.                     if (ObjectUtil.isSimple(meta[item])) {
  21.                         if (meta[item] is Array) {
  22.                             value = "[Array]";
  23.                         } else {
  24.                             value = meta[item]
  25.                         }
  26.                         arr.push({name:item, value:value});
  27.                     }
  28.                 }
  29.                 arr.sortOn("name", Array.CASEINSENSITIVE);
  30.                 dataGrid.dataProvider = arr;
  31.                 dataGrid.visible = true;
  32.             }
  33.         ]]>
  34.     </mx:Script>
  35.  
  36.     <mx:Button label="Click here to load video"
  37.             click="videoDisplay.source = VIDEO_URL;" />
  38.  
  39.     <mx:VideoDisplay id="videoDisplay"
  40.             visible="false"
  41.             ready="videoDisplay.visible = true;"
  42.             metadataReceived="videoDisplay_metadataReceived(event);" />
  43.  
  44.     <mx:DataGrid id="dataGrid"
  45.             visible="false"
  46.             width="100%"
  47.             height="100%" >
  48.         <mx:columns>
  49.             <mx:DataGridColumn dataField="name"
  50.                     headerText="Name:"
  51.                     sortable="false" />
  52.             <mx:DataGridColumn dataField="value"
  53.                     headerText="Value:"
  54.                     sortable="false" />
  55.         </mx:columns>
  56.     </mx:DataGrid>
  57.  
  58. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Flex | Tags: , , ,

Search Posts

Archives

Sponsored Ads