You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AAOS音频媒体应用:如何添加内容下载启动UI组件?

针对AAOS音频应用添加离线下载交互的实现方案

一、在模板化UI中嵌入下载操作入口

AAOS的媒体应用UI基于MediaTemplate框架,你可以通过以下两种核心方式添加下载触发点,适配单音轨和内容组的下载需求:

  • 单音轨级下载按钮:在MediaItemDisplayTemplate的secondaryActions中添加自定义操作项,避免抢占播放、暂停等核心操作的位置。示例代码如下:
// 创建下载Action实例
val downloadAction = Action.Builder()
    .setIcon(R.drawable.ic_download) // 使用系统内置或自定义下载图标
    .setLabel("下载")
    .setOnClickListener {
        // 触发当前选中音轨的下载逻辑
        triggerSingleTrackDownload(selectedMediaItem)
    }
    .build()

// 将Action绑定到模板的次级操作栏
mediaTemplate.setSecondaryActions(listOf(downloadAction))
  • 专辑/内容组批量下载选项:在BrowseTemplate(用于展示专辑、歌单等列表)中,通过长按条目弹出上下文菜单的方式添加批量下载选项:
browseTemplate.setOnItemLongClickListener { targetMediaItem ->
    val batchDownloadMenu = listOf(
        MenuItem.Builder()
            .setLabel("下载全部音轨")
            .setOnClickListener {
                // 触发该专辑下所有音轨的批量下载
                triggerAlbumBatchDownload(targetMediaItem.albumId)
            }
            .build()
    )
    showContextMenu(batchDownloadMenu)
    true
}

二、遵循AAOS交互规范优化体验

  • 状态实时反馈:下载触发后,在音轨条目旁添加进度条,或在通知栏展示下载进度;下载完成后,将按钮替换为"已下载"标识,点击可触发离线文件删除操作。
  • 批量操作确认:针对专辑等大容量内容组,建议添加二次确认弹窗,提示用户下载文件的预估大小,避免误操作。
  • 统一交互逻辑:保持单轨和批量下载的操作入口风格一致,比如统一使用系统下载图标,标签文案保持"下载"/"已下载"的统一表述。

三、对接官方离线下载技术逻辑

结合官方文档提及的下载技术实现,将交互触发事件与核心下载逻辑绑定:

  • 单轨下载:点击按钮时,传入目标MediaItem的ID或URI到下载服务,启动单任务下载。
  • 批量下载:遍历目标内容组下的所有MediaItem,逐个加入下载队列,或调用官方提供的批量下载接口(若支持)。
  • 状态同步:监听下载任务的进度、完成、失败状态,实时更新UI上的操作按钮和进度提示。

内容的提问来源于stack exchange,提问作者Dustin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 16:35:01