功能描述
在通话过程中,除了用户自己说话的声音,有时候希望让远端用户听到特殊的音频文件,比如需要添加音效,或者需要播放背景音乐等,QttAudio对播放音效和音乐文件的需求提供了支持。
播放音乐文件
QttAudio支持播放本地音乐文件,同时让频道内的其他人听到此音乐。比如通话的时候播放背景音乐,同时只可以有一个文件播放。
QttAudio播放音乐功能支持如下设置:
- 本地或者混音播放:本地播放指音乐只有本地用户可以听到,混音指的是音乐文件的音频流跟麦克风采集的音频流进行混音(叠加)并编码发送给对方,本地和远端用户都可以听到音乐;
- 循环播放:可以设置是否循环播放音乐文件,以及循环次数;
- 指定位置播放:可以设置从音乐文件的指定位置开始播放;
- 调节音量:可以同时或分别调节音乐文件在本地和远端的播放音量;
播放音效文件
音效通常指持续很短的音频。播放音效文件方法主要用来播放短小的氛围音,比如鼓掌、喝彩等氛围音效,支持多个音效叠加播放。
QttAudio播放音效功能支持如下设置:
- 本地或者混音播放:本地播放指音效只有本地用户可以听到,混音指的是音效文件的音频流跟麦克风采集的音频流进行混音(叠加)并编码发送给对方,本地和远端用户都可以听到音效;
- 循环播放:可以设置是否循环播放音效文件,以及循环次数;
- 调节音量:可以同时或分别调节音效文件在本地和远端的播放音量;
接口描述
public class ChannelEngine {
public int startSoundMixing(String filePath, int cycle, boolean publish);
public int stopSoundMixing();
public int pauseSoundMixing();
public int resumeSoundMixing();
public int setSoundMixingPosition();
public int getSoundMixingCurrentPosition();
public int getSoundMixingDuration();
public int setSoundMixingPitch(int pitch);
public int adjustSoundMixingVolume(int vol);
public int adjustSoundMixingPlayoutVolume(int vol);
public int adjustSoundMixingPublishVolume(int vol);
public int getSoundMixingPlayoutVolume();
public int getSoundMixingPublishVolume();
public int playEffect(int effectId, String filePath, int cycle, boolean publish);
public int stopEffect(int effectId);
public int stopAllEffects();
public int pauseEffect(int effectId);
public int pauseAllEffects();
public int resumeEffect(int effectId);
public int resumeAllEffects();
public int getEffectsVolume();
public int setEffectsVolume(int volume);
public int setVolumeOfEffect(int effectId, int vol); }
|
音乐播放过程的状态变化会触发onSoundStateChanged回调,音效播放完成后会触发onEffectFinished回调。
示例代码
engine.startSoundMixing("/assets/tonight1.mp3", 1, true);
engine.playEffect(111, "/assets/clap.mp3", 2, false);
|