音频 1000+
接口声明
{ "name": "system.audio" }
导入模块
import audio from '@system.audio' 或 const audio = require('@system.audio')
接口定义
方法
audio.play()
开始播放音频
参数
无
示例:
audio.play()
audio.pause()
暂停播放音频
参数
无
示例:
audio.pause()
audio.stop() 1030+
停止音频播放,可以通过 play 重新播放音频
参数
无
示例:
audio.stop()
audio.getPlayState(OBJECT) 1050+
获取当前播放状态数据
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值:
参数值 | 类型 | 说明 |
---|---|---|
state | String | 播放状态,分别为'play','pause','stop' |
src | String | 当前播放的音频媒体 uri,停止时返回空字符串 |
currentTime | Number | 当前音频的当前进度,单位秒,停止时返回-1 |
autoplay | Boolen | 当前音频是否在自动播放 |
loop | Boolen | 当前音频是否在循环播放 |
volume | Number | 当前音频的音量,默认当前系统媒体音量,音量变化范围[0.0,1.0] |
muted | Boolen | 当前音频是否在静音播放 |
notificationVisible | Boolen | 当前音频是否正在通知栏中显示音频播放状态 |
示例:
audio.getPlayState({
success: function(data) {
console.log(`handling success: state: ${data.state},src:${data.src},currentTime:${data.currentTime},autoplay:${data.autoplay},loop:${data.loop},
volume: ${data.volume},muted:${data.muted},notificationVisible:${data.notificationVisible}`)
},
fail: function(data, code) {
console.log('handling fail, code=' + code)
}
})
属性
名称 | 参数类型 | 是否可读 | 是否可写 | 必填 | 描述 |
---|---|---|---|---|---|
src | String | 是 | 是 | 是 | 播放的音频媒体 uri |
currentTime | Number | 是 | 是 | 否 | 音频的当前进度,单位秒,对值设置可以调整播放进度 |
duration | Number | 是 | 否 | 否 | 音频的播放时长,单位秒,未知返回 NaN |
autoplay | Boolean | 是 | 是 | 否 | 音频是否自动播放,默认 false |
loop | Boolean | 是 | 是 | 否 | 音频是否循环播放,默认 false |
volume | Number | 是 | 是 | 否 | 音频的音量,默认当前系统媒体音量,音量变化范围[0.0,1.0] |
muted | Boolean | 是 | 是 | 否 | 音频是否静音,默认 false |
notificationVisible 1010+ | Boolean | 是 | 是 | 否 | 音频是否在通知栏中显示音频播放状态,默认 true |
title 1040+ | String | 是 | 是 | 否 | 音频标题,未设置时显示正在播放或者暂停播放 |
artist 1040+ | String | 是 | 是 | 否 | 歌手名,未设置时显示正在播放或者暂停播放 |
cover 1040+ | String | 是 | 是 | 否 | 封面图片uri路径 |
streamType 1040+ | String | 是 | 是 | 否 | 指定使用音频类型,可设置的值有 music、voicecall,值为 music 时使用扬声器播放,voicecall 时使用听筒播放,默认为 music。 |
示例:
let currentTime = audio.currentTime
audio.currentTime = 5
事件
名称 | 描述 |
---|---|
play | 在调用 play 方法后或者 autoplay 为 true 时的回调事件 |
pause | 在调用 pause 方法后的回调事件 |
stop 1030+ | 在调用 stop 方法后的回调事件 |
loadeddata | 第一次获取到音频数据的回调事件 |
ended | 播放结束时的回调事件 |
durationchange | 播放时长变化时的回调事件 |
error | 播放发生错误时的回调事件 |
timeupdate | 播放进度变化时触发,触发频率 4HZ |
previous 1040+ | 通知栏点击上一首按钮时触发 |
next 1040+ | 通知栏点击下一首按钮时触发 |
示例:
audio.ontimeupdate = function() {
console.log(`audio current time: ${audio.currentTime}`)
}
audio.ontimeupdate = null
audio.onprevious = function() {
audio.src = "uri";
audio.tilte="上一首歌名";
audio.play();
};
后台运行限制
manifest 中申请后可用。后台运行详细用法参见后台运行 脚本。