功能描述
本文将介绍如何在通话过程中增加背景音乐的功能,点击 体验 demo 进行体验。
前提条件
TRTC 版本 5.1+
支持在通话中添加背景音乐的平台如下:
操作系统 | 浏览器类型 | 浏览器最低版本要求 |
---|---|---|
Mac OS | 桌面版 Chrome 浏览器 | 56+ |
Mac OS | 桌面版 Safari 浏览器 | 11+ |
Mac OS | 桌面版 Firefox 浏览器 | 56+ |
Mac OS | 桌面版 Edge | 80+ |
Windows | 桌面版 Chrome 浏览器 | 56+ |
Windows | 桌面版 QQ 浏览器(极速模式) | 10.4+ |
Windows | 桌面版 Firefox 浏览器 | 56+ |
Windows | 桌面版 Edge | 80+ |
iOS | 移动版 Safari 浏览器 | 14+ |
iOS | 微信内嵌网页 | ✖ |
Android | 移动版 Chrome 浏览器 | 81+ |
Android | 微信内嵌网页(TBS 内核) | ✔ |
Android | 移动版 QQ 浏览器 | ✖ |
实现流程
开启背景音乐
注意:
- 播放在线音效文件时,音效文件必须支持
CORS
,且访问协议必须为https
协议。- 支持的格式为 MP3,AAC(以及浏览器支持的其他音频格式)。
- 网页在没有用户交互之前,浏览器禁止网页播放带有声音的媒体,建议引导用户执行点击行为后调用该接口。
- 参考:Autoplay_guide 。
await trtc.startPlugin('AudioMixer', {
id: 'count',
url: '../assets/count.mp3',
loop: true,
volume: 0.2
})
更新背景音乐
对背景音乐进行操作。
// 取消循环播放
await trtc.updatePlugin('AudioMixer', {
id: 'count',
loop: false
})
// 设置音量
await trtc.updatePlugin('AudioMixer', {
id: 'count',
volume: 1
})
// 将 count 音乐暂停
await trtc.updatePlugin('AudioMixer', {
id: 'count',
loop: true,
volume: 0.2,
operation: 'pause'
})
// 将 count 音乐恢复
await trtc.updatePlugin('AudioMixer', {
id: 'count',
operation: 'resume'
})
// 将 count 音乐从第 5s 开始播放
await trtc.updatePlugin('AudioMixer', {
id: 'count',
seekFrom: 5
})
关闭背景音乐
关闭某个不需要使用的音乐。
await trtc.stopPlugin('AudioMixer', {
id: 'count'
})
API 说明
trtc.startPlugin('AudioMixer', options)
用于增加一个背景音乐
options
Name | Type | Attributes | Description |
---|---|---|---|
id | string |
给当前传入的音乐 url 自定义一个唯一的 ID, 例如: 'bgm' | |
url | string |
音乐文件地址,与下方的 track 字段必须二选一填入,若同时传入,以 url 为准 | |
track | MediaStreamAudioTrack |
自 v5.4.3+ 支持,与 url 二选一,可以传入从 <audio/> 标签中提取的 ,若同时传入,以 url 为准 |
|
loop | boolean |
<optional> |
是否循环播放,默认为false |
volume | number |
<optional> |
设置初始音量,默认为1 (0-1) |
Example:
await trtc.startPlugin('AudioMixer', {
id: 'count',
url: '../assets/count.mp3',
loop: true,
volume: 0.2
})
trtc.updatePlugin('AudioMixer', options)
options
Name | Type | Attributes | Description |
---|---|---|---|
id | string |
调用 startPlugin 时定义的背景音乐文件的 ID | |
loop | boolean |
<optional> |
是否循环播放,默认为false |
volume | number |
<optional> |
设置初始音量,默认为1 (0-1) |
seekFrom | number |
<optional> |
从第几秒开始 seek 播放,此功能需要背景音乐资源文件的请求支持范围请求 |
operation | number |
<optional> |
对背景音乐的操作: 'pause' | 'resume' | 'stop' |
Example:
await trtc.updatePlugin('AudioMixer', {
id: 'count',
loop: true,
volume: 0.2,
operation: 'pause'
})
trtc.stopPlugin('AudioMixer', options)
关闭某个背景音乐。
options
Name | Type | Attributes | Description |
---|---|---|---|
id | string |
调用 startPlugin 时定义的背景音乐文件的 ID |
Example:
await trtc.stopPlugin('AudioMixer', {
id: 'count'
})
常见问题
1. 出现跨域错误
例如:Access to audio at XXX from origin XXX has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
解决:您需要配置线上音乐文件的 CORS 协议。
2. 音频格式不对,浏览器无法播放
例如:NotSupportedError: The operation is not supported.
解决:您需要使用浏览器支持的音频格式。