我正在尝试从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");
以及许多其他尝试,但无法弄清楚如何获得那些已知的元数据。
非常感谢任何想法!
答案 0 :(得分:1)
事实证明这很简单......只需要在URLResource对象中使用getMetadataValue函数,如下所示:
var temp:Object = media.resource.getMetadataValue("VideoParams");
trace('Owner:', temp.Owner);