Titanium SDK 中的媒体项(Media.Item)对象详解

Titanium SDK 中的媒体项(Media.Item)对象详解

概述

在 Titanium SDK 的媒体模块中,Titanium.Media.Item 是一个非常重要的对象,它代表了从设备音乐库中获取的单个媒体项(如歌曲、播客等)。这个对象提供了丰富的元数据访问能力,让开发者能够获取音乐库中各种详细的媒体信息。

获取方式

Item 对象不能直接创建,而是通过以下两种方式获取:

  1. 使用 Titanium.Media.openMusicLibrary 方法,在其成功回调函数中返回
  2. 使用 Titanium.Media.queryMusicLibrary 方法,返回一个 Item 对象数组

核心属性解析

基础信息属性

  • title: 媒体项的标题(如歌曲名称)
  • artist: 媒体项的艺术家信息
  • albumTitle: 所属专辑的标题
  • albumArtist: 专辑的艺术家信息(可能与单曲艺术家不同)
  • composer: 作曲者信息
  • genre: 媒体项所属的音乐流派

专辑相关信息

  • albumTrackNumber: 该曲目在专辑中的编号
  • albumTrackCount: 专辑包含的总曲目数
  • discNumber: 该曲目所在的碟片编号(针对多碟专辑)
  • discCount: 专辑包含的总碟片数
  • isCompilation: 是否为合辑专辑的一部分

播放信息

  • playCount: 该媒体项被播放的次数
  • lastPlayedDate: 最近一次播放的日期
  • playbackDuration: 媒体项的持续时间(秒)
  • bookmarkTime: 用户上次播放时的位置
  • skipCount: 该媒体项被跳过的次数

高级元数据

  • artwork: 专辑封面图像(以 Blob 对象形式)
  • lyrics: 歌词内容
  • rating: 用户评分(0-5)
  • beatsPerMinute: 每分钟节拍数(BPM)
  • comments: 用户添加的注释信息
  • userGrouping: 用户自定义分组信息

持久化标识符

这些属性在 6.1.0 版本后引入,用于唯一标识媒体项及其相关元素:

  • persistentID: 媒体项本身的持久标识符
  • albumPersistentID: 专辑的持久标识符
  • albumArtistPersistentID: 专辑艺术家的持久标识符
  • genrePersistentID: 流派的持久标识符
  • podcastPersistentID: 播客的持久标识符

特殊属性

  • mediaType: 媒体类型,使用 Titanium.Media.MUSIC_MEDIA_TYPE_* 常量表示
  • isExplicit: 是否标记为"显式内容"
  • hasProtectedAsset: 是否为受保护资产
  • isCloudItem: 是否为 iCloud 项目
  • assetURL: 媒体项的 URL 地址

使用场景示例

假设我们需要获取用户音乐库中所有歌曲并显示基本信息:

// 查询音乐库
const musicLibrary = Ti.Media.queryMusicLibrary({
    // 查询条件
    artist: 'Coldplay'
});

// 处理结果
musicLibrary.forEach(function(item) {
    console.log('歌曲: ' + item.title);
    console.log('艺术家: ' + item.artist);
    console.log('专辑: ' + item.albumTitle);
    console.log('时长: ' + item.playbackDuration + '秒');
    
    // 如果有专辑封面
    if (item.artwork) {
        const coverImage = Ti.UI.createImageView({
            image: item.artwork,
            width: 200,
            height: 200
        });
        // 添加到界面...
    }
});

注意事项

  1. Item 对象是只读的,不能修改其中的属性
  2. 不同设备/系统版本可能支持的属性有所不同
  3. 某些属性(如 artwork)可能为 null
  4. 需要确保应用有访问音乐库的权限

版本兼容性

  • 基础属性从 1.4.0 版本开始提供
  • 许多高级属性在 6.1.0 版本中新增
  • 某些属性(如 playbackStoreID)有特定的系统版本要求

通过 Titanium.Media.Item 对象,开发者可以构建丰富的音乐相关应用,如音乐播放器、音乐库管理器等,充分利用设备本地音乐库的资源。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邱行方Mountain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值