媒体信息使用指导

← 返回媒体信息组件参考 · 全部使用指导

媒体信息使用指导

不可见组件:读取音乐、视频文件里写着的信息——歌名、歌手、专辑、年份、流派、时长、视频尺寸,以及专辑封面 (自动存成图片文件,可以直接显示在图像组件上,或交给本地通知的媒体通知当封面)。 来源可以是素材文件名、手机里的文件路径或网址;读取在后台进行,完成后触发信息已读取(是否成功)(Loaded)。

快速上手:显示歌曲信息和封面

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when Screen1.Initialize() {
  媒体信息1.Load("qingtian.mp3")
}

when 媒体信息1.Loaded(是否成功) {
  if 是否成功 {
    标签_歌名.Text = 媒体信息1.Title
    标签_歌手.Text = join(媒体信息1.Artist, " · ", 媒体信息1.LengthText)
    图像1.Picture = 媒体信息1.CoverImage
    本地通知1.ShowMedia(媒体信息1.Title, 媒体信息1.Artist, 媒体信息1.CoverImage)
  } else {
    标签_歌名.Text = "读不出歌曲信息"
  }
}

有的文件没写歌名,标题会是空文本,这时可以直接显示文件名。

搭建与测试

在设计器拖入本组件和案例涉及的按钮、标签、布局等组件,按案例中的名称重命名。先运行最小案例,确认事件返回,再增加业务逻辑。示例中的素材先上传到项目,服务器地址、令牌、文件路径换成自己的值。

可见组件需要有非零宽高;不可见工具组件必须由属性或方法启动。设计器展示样式不等于运行时已加载数据或绑定目标。联机测试应使用包含本组件的 AI 伴侣;涉及系统入口或权限的行为还要编译安装后验证。

案例:读取音频时长

上传 music.mp3,放媒体信息和标签;等 Loaded 成功后再读属性,不在 Load 后立即读。

when Screen1.Initialize() {
  媒体信息1.Load("music.mp3")
}
when 媒体信息1.Loaded(是否成功) {
  if 是否成功 {
    标签1.Text = join(媒体信息1.Title, " / ", 媒体信息1.LengthText)
  } else {
    标签1.Text = "无法读取媒体信息"
  }
}

文件本身可能没有歌名、歌手或封面;读取成功不代表所有字段都有值。网络地址须能直接访问媒体文件。

属性、方法与事件速查

完整参数类型、默认值和平台说明见组件参考。下表按调用入口列出用途;有完成事件的方法在事件中读取结果。

入口 用途
专辑(Album) 专辑名。
艺术家(Artist) 艺术家(歌手)。
封面图片(CoverImage) 专辑封面图片文件路径(读取时自动存到应用缓存目录),可直接赋给图像的「图片」或媒体通知的封面;没有封面时为空文本。视频取第一帧附近的画面。
流派(Genre) 流派。
时长(Length) 时长(毫秒)。
时长文字(LengthText) 时长文字,如 3:45,超过一小时为 1:02:03。
MIME类型(MimeType) 文件类型,如 audio/mpeg、video/mp4。
标题(Title) 标题(歌名),文件里没写时为空文本。
视频高度(VideoHeight) 视频高度(像素),音频为 0。
视频宽度(VideoWidth) 视频宽度(像素),音频为 0。
年度(Year) 年份。
读取(源文件)(Load) 读取媒体文件信息(素材文件名、手机里的文件路径或网址),完成后触发「信息已读取」。读取期间各属性保持上一次的值;再次调用会以最后一次为准。
信息已读取(是否成功)(Loaded) 读取完成。success 为假表示读不出来(文件不存在、格式不支持或网络错误),此时各属性清空。

常见问题与验收

检查项 操作与预期
初始化 对照案例检查是否已经调用加载、注册、连接或显示方法;仅拖入组件不会替你执行这些步骤。
结果返回 将成功事件和失败事件都接到标签,记录事件参数;异步操作完成前不读取结果属性。
输入配置 检查素材名大小写、网址是否为直接资源地址、文件是否存在、编号和索引是否在范围内。
平台与权限 按组件参考中的平台说明测试;授权被拒绝时应有明确提示,不继续假定操作成功。
最小案例 先验证页面中的最小案例,再验证第二个场景;重复操作、取消、返回屏幕后结果应符合事件说明。

完整 .aia 源码与操作指导

下载 .aia 源码

工程自带真实2秒PCM WAV和仓库中的AI助手示例MP4,不需要用户先上传素材。音频和视频都可从选择器切换并读取,11个只读属性逐项展示。标题、专辑、封面只在文件确有元数据时才有值。鸿蒙只支持本地源。

导入 MediaInfoAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。

API / 功能 操作入口 预期结果
Load / Loaded 选择beep.wav点读取 实际2秒音频,完成事件给成功布尔;WAV未写入标题等标签,这些为空是正常结果
视频素材 选择example.mp4点读取 读取随工程的真实演示短片,时长及视频宽高大于0
Title / Artist / Album / Year / Genre / MimeType 成功后看信息区 显示文件实际标签,缺少的标签保留空文本,不编造内容
Length / LengthText / VideoWidth / VideoHeight 读取音频与视频对比 毫秒和文字时长并列;纯音频宽高通常为0,视频显示实际尺寸
CoverImage 读包含专辑封面的本地文件 有封面时显示实际路径并载入;示例无嵌入封面,显示空是正常结果
失败与恢复 点失败,再选择素材点读取 success为假且有具体错误;重新读取有效素材可恢复
外部文件 输入真实可访问本地路径 读取自己文件的标签;鸿蒙URL不支持,不假称已读到网络元数据

所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。

素材来源:beep.wav为本仓库案例生成的2秒、8kHz、单声道16位PCM提示音;example.mp4来自仓库已有 ai-videos/AI助手短视频系列/AI助手竖屏EP1.mp4,仅演示媒体参数读取。没有空素材或远程示意链接。文件大约3MB,请允许伴侣先完成资源下载,再点读取;下载未完成可稍后重试。

媒体信息

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 工程自带真实2秒PCM WAV和仓库中的AI助手示例MP4,不需要用户先上传素材。音频和视频都可从选择器切换并读取,11个只读属性逐项展示。标题、专辑、封面只在文件确有元数据时才有值。鸿蒙只支持本地源。 覆盖检查 13/13。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。

文档反馈