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