从MediaElement(AS3)中提取元数据对象

时间:2010-12-17 15:33:37

标签: actionscript-3 metadata mediaelement

我正在尝试从URLResource检索元数据。 URLResource不是由我控制的,而是传递给我正在使用的函数。

URLResource的创建方式如下:

var resource:URLResource = new URLResource("http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv");

// Add Metadata for the URLResource
var VideoParams:Object = {
Name:"Logo Video",
Owner:"Self",
Duration:"1:25:20",
category:"education"
}

resource.addMetadataValue("VideoParams", VideoParams);
var media:MediaElement = factory.createMediaElement(resource);

现在,URLResource包含元数据。我将收到一个MediaElement资源。如何提取元数据?

以下是调试器显示的内容(media是包含带元数据的URLResource的MediaElement对象):

fdb>print media.resource.
$1 = [Object 246396705, class='org.osmf.media::URLResource']
_mediaType = null
_metadata = [Object 416970209, class='flash.utils::Dictionary']
_mimeType = null
url = "http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv"
fdb>print media.resource._metadata.
$2 = metadata = [Object 416970209, class='flash.utils::Dictionary']
VideoParams = [Object 416970305, class='Object']
(fdb)print media.resource._metadata.VideoParams.
$3 = VideoParams = [Object 416970305, class='Object']
category = "education"
Duration = "1:25:20"
Owner = "Self"
Name = "Logo Video"

我尝试用以下方法提取元数据对象:

media.resource.getMetadata("VideoParams");

以及许多其他尝试,但无法弄清楚如何获得那些已知的元数据。

非常感谢任何想法!

1 个答案:

答案 0 :(得分:1)

事实证明这很简单......只需要在URLResource对象中使用getMetadataValue函数,如下所示:

var temp:Object = media.resource.getMetadataValue("VideoParams");
trace('Owner:', temp.Owner);