如果你需要在通话过程中播放时长较长的音乐文件或PCM 数据(如背景音乐、伴奏)并将其推送给房间内的其他成员,可使用音乐播放类接口。同一时间,只能播放 4 个音乐文件。
说明
若需播放时长小于 20 秒的短音效,请优先使用播放音效文件。 参考以下顺序,调用 API 实现此功能:
创建音视频引擎类后,你可以通过调用 getMediaPlayer,传入播放器 ID 创建一个音乐播放器类。
如果你需要将音频发送到远端,还需要加入房间并发布音频流,参考 构建 RTC 应用 获取详细步骤。 你可以通过回调感知音乐的播放状态和播放位置。
对同一个音频文件进行操作时,混音 ID 应保持一致。
已经调用 open,且 auto_play = false 时,需要调用 start 播放音乐。
如果你需要在播放中主动终止播放,可以调用 stop 方法。
所有的混音相关设置都必须在开始播放以后,停止播放之前进行,否则不生效,包括但不限于设置播放起始位置等。
在调用 openWithCustomSource 启动混音前,可以进行初始化设置,包括是否自动播放、播放次数等。
推送音频数据
调用 pushExternalAudioFrame 向 RTC 推送音频数据前,你需要按照 RTC SDK 要求对数据进行处理。以下代码片段以示例项目中提供的 PCM 音频文件为例,说明数据的格式要求。
如果你需要在播放中主动终止播放,可以调用 stop 方法。
音量设置必须在开始播放以后,停止播放之前进行,否则不生效。
通过 setVolume 接口逐个指定混音音量。
说明:表格中的 macOS API 接口为 Objective-C,而示例项目中的 macOS 项目使用的是 Windows SDK 中的 API 接口。
变更日志
- SDK 3.54:Native 平台废弃原有的混音类,分为音效混音和音乐混音,支持分别控制。
- SDK 3.52:支持混音播放 24kHz 的 mp3 文件。3.52 之前版本仅支持以下采样率的音乐文件:8kHz、16kHz、22.05kHz、32kHz、44.1kHz、48kHz、64kHz、96kHz、192kHz。
- SDK 3.45.4:支持获取混音音频文件的实际播放时长,即歌曲不受停止、跳转、倍速、卡顿影响的播放时长。
- SDK 3.38:支持调整音视频通话中使用的音乐文件的播放速度。