阿里云RTC SDK为您提供伴奏文件和音效文件的相关接口方法,您可以通过本文了解其具体的实现方法。

伴奏文件

伴奏文件的接口方法如下所示。

  • 调用startAudioAccompanyWithFile开始混音伴奏,调用成功返回0,失败返回错误码。

    说明 调用该接口后,立即开始混音伴奏。
    //接口方法
    - (int)startAudioAccompanyWithFile:(NSString *)filePath onlyLocalPlay:(BOOL)onlyLocalPlay replaceMic:(BOOL)replaceMic loopCycles:(NSInteger)loopCycles;
    //示例方法
    int code = [self.engine startAudioAccompanyWithFile:@"******" onlyLocalPlay:YES replaceMic:YES loopCycles:3];
    if (code != 0) {
        NSLog(@"播放失败,请检查参数配置");
    }
    参数 说明
    filePath 伴奏文件路径
    onlyLocalPlay 是否只本地播放。YES:仅本地播放;NO:本地播放和推流
    replaceMic 是否替换麦克风采集,YES:替换麦克风采集,只有伴奏声;NO:与麦克风共存
    loopCycles 循环次数,可以设置-1或者正整数
  • 调用pauseAudioAccompany暂停伴奏播放,调用成功返回0,失败返回错误码。

    说明 您需要在startAudioAccompanyWithFile接口之后调用。
    //接口方法
    - (int)pauseAudioAccompany;
    //示例接口
    [self.engine pauseAudioAccompany];
  • 调用resumeAudioAccompany恢复伴奏,调用成功返回0,失败返回错误码。

    说明 您可以与pauseAudioAccompany搭配使用。
    //接口方法
    - (int)resumeAudioAccompany;
    //示例方法
    [self.engine resumeAudioAccompany];
  • 调用stopAudioAccompany停止伴奏,调用成功返回0,失败返回错误码。

    说明 调用之后立刻停止伴奏播放,与startAudioAccompanyWithFile搭配使用。
    //接口方法
    - (int)stopAudioAccompany;
    //示例方法
    [self.engine stopAudioAccompany];
  • 设置音量的接口方法如下所示。

    /**
     * @brief 设置混音音量
     * @param volume 混音音量,取值:0~100
     * @return 调用成功返回0,失败返回错误码
     * @note 设置音量需要在调用startAudioAccompanyWithFile接口后才能生效
     */
    - (int)setAudioAccompanyVolume:(NSInteger)volume;
    
    /**
     * @brief 设置混音之后推流出去的音量
     * @param volume 混音音量,取值:0~100
     * @return 调用成功返回0,失败返回错误码
     * @note 设置音量需要在调用startAudioAccompanyWithFile接口后才能生效
     */
    - (int)setAudioAccompanyPublishVolume:(NSInteger)volume;
    
    /**
     * @brief 获取推流出去的混音音量
     * @return 调用成功返回0,失败返回错误码
     */
    - (int)getAudioAccompanyPublishVolume;
    
    /**
     * @brief 设置混音之后本地播放的音量
     * @param volume 混音音量,取值:0~100
     * @return 调用成功返回0,失败返回错误码
     * @note 设置音量需要在调用startAudioAccompanyWithFile接口后才能生效
     */
    - (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;
    
    /**
     * @brief 获取混音本地播放的音量
     * @return 调用成功返回0,失败返回错误码
     */
    - (int)getAudioAccompanyPlayoutVolume;

音效文件

音效文件的接口方法如下所示。

  • 调用preloadAudioEffectWithSoundId预加载音效文件,调用成功返回0,失败返回错误码。

    //接口方法
    - (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *)filePath;
    //示例方法
    [self.engine preloadAudioEffectWithSoundId:11235 filePath:@"*******"];
    参数 类型 说明
    filePath NSString * 伴奏文件路径
    soundId NSInteger 指定的音效文件ID,个数无限制,您需要通过此ID做后续操作
  • 调用unloadAudioEffectWithSoundId根据预加载的音效文件ID删除预加载音效,调用成功返回0,失败返回错误码。

    //接口方法
    - (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;
    //示例方法
    [self.engine unloadAudioEffectWithSoundId:11235];
  • 调用playAudioEffectWithSoundId开始播放音效,调用成功返回0,失败返回错误码。

    说明 调用该接口后立即播放音效,您需要在preloadAudioEffectWithSoundId之后调用。
    //接口方法
    - (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;
    //示例方法
    int code = [self.engine playAudioEffectWithSoundId:11235 filePath:@"******" cycles:5 publish:YES];
    if (code != 0) {
        NSLog(@"播放失败,,请检查参数配置");
    }
    参数 类型 说明
    soundId NSInteger 预加载时指定的文件ID
    filePath NSString * 音效文件路径
    cycles NSInteger 循环次数,可以设置为-1或者正整数
    publish BOOL 是否推流,NO:不推流、仅本地播放;YES:本地播放和推流
  • 调用pauseAudioEffectWithSoundId暂停播放音效,调用成功返回0,失败返回错误码。

    说明 您需要在playAudioEffectWithSoundId接口之后调用。
    //接口方法
    - (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;
    //示例方法
    [self.engine pauseAudioEffectWithSoundId:11235];
  • 调用resumeAudioEffectWithSoundId恢复播放音效,调用成功返回0,失败返回错误码。

    说明 该接口可以和pauseAudioEffectWithSoundId搭配使用。
    //接口方法
    - (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;
    //示例方法
    [self.engine resumeAudioEffectWithSoundId:11235];
  • 调用stopAudioEffectWithSoundId停止播放音效,调用成功返回0,失败返回错误码。

    说明 调用该接口之后立刻停止播放音效,可以与playAudioEffectWithSoundId搭配使用。
    //接口方法
    - (int)stopAudioEffectWithSoundId:(NSInteger)soundId;
    //示例方法
    [self.engine stopAudioEffectWithSoundId:11235];
  • 设置音效音量接口方法如下所示。
    /**
     * @brief 设置音效推流音量
     * @param soundId 音效文件ID
     * @param volume 混音音量,取值:0~100
     * @return 调用成功返回0,失败返回错误码
     */
    - (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;
    
    /**
     * @brief 获取推流音效音量
     * @param soundId 音效文件ID
     * @return 调用成功返回0~100音量,失败返回错误码
     */
    - (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;
    
    /**
     * @brief 设置音效本地播放音量
     * @param soundId 音效文件ID
     * @param volume 混音音量,取值:0~100
     * @return 调用成功返回0,失败返回错误码
     */
    - (int)setAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;
    
    /**
     * @brief 获取音效本地播放音量
     * @param soundId 音效文件分配ID
     * @return 调用成功返回0~100音量,失败返回错误码
     */
    - (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;