多媒体
更新时间:
接口声明
{ "name": "blueos.media.audio.mediaManager" }
复制代码
导入模块
import media from '@blueos.media.audio.mediaManager' 或 const media = require('@blueos.media.audio.mediaManager')
复制代码
接口定义
media.createAudioPlayer()
创建音频播放的实例。
参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
streamType | String | 否 | streamType |
contentType | String | 否 | contentType |
streamUsage | String | 否 | streamUsage |
返回值
示例:
const audioplayer = media.createAudioPlayer()
复制代码
media.createAudioTrack()
创建音频流式播放的实例
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
streamType | String | 否 | streamType |
contentType | String | 否 | contentType |
streamUsage | String | 否 | streamUsage |
sampleRateInHz | Number | 否 | 采样率,单位赫兹,可选值为:8000、 16000;默认值为 16000 |
channelConfig | Number | 否 | 捕获音频的声道数目,1:单声道,2:立体声;默认值为 1 |
audioFormat | Number | 否 | 样本的分辨率,单位 bit,可选值为: 8、16;默认值为 16 |
返回值
示例:
const audiotrack = media.createAudioTrack()
复制代码
media.createAudioRecord(OBJECT)
创建录音实例
参数
属性名 | 类型 | 必填 | 说明 |
---|---|---|---|
sampleRateInHz | Number | 否 | 采样率,单位赫兹,可选值为:8000、 16000;默认值为 16000 |
channelConfig | Number | 否 | 音频的声道数目,1:单声道,2:立体声;默认值为 1 |
audioFormat | Number | 否 | 样本的分辨率,单位 bit,可选值为: 8、16;默认值为 16 |
返回值
示例:
const record = media.createAudioRecord()
复制代码
AudioPlayer
AudioPlayer.play()
开始播放音频
参数
无
示例:
audioplayer.src = 'xxx'
// play 方法调用无需等待 src 加载完成
audioplayer.play()
复制代码
AudioPlayer.pause()
暂停播放音频
参数
无
示例:
audioplayer.pause()
复制代码
AudioPlayer.stop()
停止音频播放,可以通过 play 重新播放音频
参数
无
示例:
audioplayer.stop()
复制代码
AudioPlayer.release()
释放音频资源
参数
无
示例:
audioplayer.release()
复制代码
属性
名称 | 参数类型 | 是否可读 | 是否可写 | 必填 | 描述 |
---|---|---|---|---|---|
src | String | 是 | 是 | 是 | 播放的音频媒体 uri |
currentTime | Number | 是 | 是 | 否 | 音频的当前进度,单位秒,对值设置可以调整播放进度 |
duration | Number | 是 | 否 | 否 | 音频文件的总时长,单位秒,未知返回 NaN |
state | String | 是 | 否 | 否 | 播放状态,分别为'play','pause','stop','idle' |
playcount | Number | 是 | 是 | 是 | 控制音频的循环播放,playcount == 1 或 playcount == 0:不开启循环; playcount >1:开启循环,且循环指定的次数; playcount == -1:开启循环,且循环无限次数 |
示例:
let currentTime = audioplayer.currentTime
// 跳转时间
audioplayer.currentTime = 100
复制代码
事件
名称 | 描述 | 返回值 |
---|---|---|
Play | 在音频 play 后的回调事件 | |
Pause | 在音频 pause 后的回调事件 | |
Stop | 在音频 stop 后的回调事件 | |
Ended | 播放结束时的回调事件 | |
Error | 播放发生错误时的回调事件 | |
TimeUpdate | 在 currentTime 属性更新时会触发的回调事件 |
|
DurationChange | 在 duration 属性更新时被触发的回调事件 |
|
Previous | 音乐面板点击上一首按钮时触发 | |
Next | 音乐面板点击下一首按钮时触发 | |
LoadedData | 第一次获取到音频数据的回调事件 | |
Interrupt | 音频打断事件,当前音频被其他有相同音频类型的音频抢夺时,被停止或者恢复的通知。或者当前音频被当外部设备操作打断的通知。 | InterruptAction |
示例:
audioplayer.onInterrupt = function (interruptAction) {
console.log(interruptAction.interruptHint)
}
复制代码
AudioTrack
AudioTrack.play()
开始播放音频
参数
无
示例:
audiotrack.play()
复制代码
AudioTrack.write(OBJECT)
写入音频数据
参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
buffer | Uint8Array | 是 | 写入的二进制音频数据 |
success | Function | 否 | 成功函数,通过该回调函数通知写入的情况 |
fail | Function | 否 |
success 返回值:
参数值 | 类型 | 说明 |
---|---|---|
state | Number | 写入状态,1 - 成功 2 - 失败 3 - 参数异常 |
示例:
http.get('/getAudio').then((res) => {
audiotrack.write({
buffer: new Uint8Array(res),
success: function () {
// wirte success
},
})
})
复制代码
AudioTrack.pause()
暂停播放音频
参数
无
示例:
audiotrack.pause()
复制代码
AudioTrack.stop()
停止音频播放,可以通过 play 重新播放音频
参数
无
示例:
audiotrack.stop()
复制代码
AudioTrack.release()
释放音频资源
参数
无
示例:
audiotrack.release()
复制代码
属性
名称 | 参数类型 | 是否可读 | 是否可写 | 必填 | 描述 |
---|---|---|---|---|---|
state | String | 是 | 否 | 否 | 播放状态,分别为'play','pause','stop' |
示例:
let state = audiotrack.state
console.log(state)
复制代码
事件
名称 | 描述 | 返回值 |
---|---|---|
Play | 在音频 play 后的回调事件 | |
Stop | 在音频 stop 后的回调事件 | |
Pause | 在音频 pause 后的回调事件 | |
Ended | 播放结束时的回调事件 | |
Error | 播放发生错误时的回调事件 | |
TimeUpdate | 在 currentTime 属性更新时会触发的回调事件 | |
Interrupt | 音频打断事件,当前音频被其他有相同音频类型的音频抢夺时,被停止或者恢复的通知。或者当前音频被当外部设备操作打断的通知。 | InterruptAction |
示例:
audiotrack.onInterrupt = function (interruptAction) {
console.log(interruptAction.interruptHint)
}
复制代码
AudioRecorder
AudioRecorder.start(OBJECT)
开始录音,并在录音结束后生成音频文件。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | String | 是 | 需要输出到文件的 uri |
success | Function | 是 | 成功的回调 |
fail | Function | 是 | 失败的回调 |
complete | Function | 是 | 执行结束后的回调 |
success 返回值:
参数名 | 类型 | 说明 |
---|---|---|
uri | String | 录音文件的存储路径 |
示例:
record.start({
uri: 'internal://cache/path/to/file',
success: function (data) {
console.log(`handling success: ${data.uri}`)
},
fail: function (data, code) {},
})
复制代码
AudioRecorder.read(OBJECT)
开始录音,录音的过程中实时返回音频内容。
注意:AudioRecorder.read 也是开始录音,不要再调用 AudioRecorder.start。
参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Function | 否 | 回调函数 |
callback 返回值:
参数名 | 类型 | 说明 |
---|---|---|
buffer | Uint8Array | 录音内容 |
示例:
record.read({
callback(buffer) {
console.log('buffer.length: ' + buffer.length)
},
})
复制代码
AudioRecorder.stop(OBJECT)
停止录音。
参数:
无
示例:
record.stop()
复制代码
AudioRecorder.release(OBJECT)
释放录音资源。
参数:
无
示例:
record.release()
复制代码
事件
名称 | 描述 |
---|---|
Error | 录音发生错误时的回调事件 |
Start | 录音开始时的回调事件 |
Stop | 录音停止时的回调事件 |
示例:
record.onError = function () {
console.log(`audio error`)
}
复制代码
参数
streamUsage
指定使用音频类型 ,默认值为music
。用于对音频冲突的仲裁,多个相同的streamUsage
音频同时播放时,系统只会保留一个,其他的会被打断。
名称 | 说明 |
---|---|
music | 媒体 |
contentType
用于音频后处理,默认值为music
。系统会根据不同的 contentType
对声音进行优化处理。
名称 | 说明 |
---|---|
speech | 语音播报 |
music | 音乐播放 |
movie | 视频播放/电视节目 |
sonification | 按键音/游戏中的短音提示/拟音 |
streamType
用于音量策略,默认值为music
。系统可以通过不同的 streamType
来管理音频的音量,例如:播放音乐设置为 music
,消息提示音设置为 ring
。
名称 | 说明 |
---|---|
music | 媒体 |
InterruptAction
属性 | 类型 | 说明 |
---|---|---|
interruptHint | Number | 1 - 音频恢复 (如:来电恢复) 2 - 音频暂停 (如:来电打断) 3 - 音频停止(如:彻底停止) |
actionType | Number | 事件返回类型。 0 - 被音频抢夺,焦点触发事件 1 - 音频被外部设备打断事件。 |