音频 1000+

接口声明

  1. { "name": "system.audio" }

导入模块

  1. import audio from '@system.audio' const audio = require('@system.audio')

接口定义

方法

audio.play()

开始播放音频

参数

示例:
  1. audio.play()

audio.pause()

暂停播放音频

参数

示例:
  1. audio.pause()

audio.stop() 1030+

停止音频播放,可以通过 play 重新播放音频

参数

示例:
  1. audio.stop()

audio.getPlayState(OBJECT) 1050+

获取当前播放状态数据

参数
参数名类型必填说明
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success 返回值:
参数值类型说明
stateString播放状态,分别为'play','pause','stop'
srcString当前播放的音频媒体 uri,停止时返回空字符串
currentTimeNumber当前音频的当前进度,单位秒,停止时返回-1
autoplayBoolen当前音频是否在自动播放
loopBoolen当前音频是否在循环播放
volumeNumber当前音频的音量,默认当前系统媒体音量,音量变化范围[0.0,1.0]
mutedBoolen当前音频是否在静音播放
notificationVisibleBoolen当前音频是否正在通知栏中显示音频播放状态
示例:
  1. audio.getPlayState({
  2. success: function(data) {
  3. console.log(`handling success: state: ${data.state},src:${data.src},currentTime:${data.currentTime},autoplay:${data.autoplay},loop:${data.loop},
  4. volume: ${data.volume},muted:${data.muted},notificationVisible:${data.notificationVisible}`)
  5. },
  6. fail: function(data, code) {
  7. console.log('handling fail, code=' + code)
  8. }
  9. })

属性

名称参数类型是否可读是否可写必填描述
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。

示例:

  1. let currentTime = audio.currentTime
  2. audio.currentTime = 5

事件

名称描述
play在调用 play 方法后或者 autoplay 为 true 时的回调事件
pause在调用 pause 方法后的回调事件
stop 1030+在调用 stop 方法后的回调事件
loadeddata第一次获取到音频数据的回调事件
ended播放结束时的回调事件
durationchange播放时长变化时的回调事件
error播放发生错误时的回调事件
timeupdate播放进度变化时触发,触发频率 4HZ
previous 1040+通知栏点击上一首按钮时触发
next 1040+通知栏点击下一首按钮时触发

示例:

  1. audio.ontimeupdate = function() {
  2. console.log(`audio current time: ${audio.currentTime}`)
  3. }
  4. audio.ontimeupdate = null
  5. audio.onprevious = function() {
  6. audio.src = "uri";
  7. audio.tilte="上一首歌名";
  8. audio.play();
  9. };

后台运行限制

manifest 中申请后可用。后台运行详细用法参见后台运行 脚本