产品百科 | RTC iOS SDK 播放音效文件的接口方法

简介: 阿里云 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;


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
JSON 前端开发 API
使用微信JS-SDK调用发票接口的完整开发指南
本文介绍了如何使用微信JS-SDK的`chooseInvoiceTitle`接口来调用微信的发票功能。通过微信发票接口,用户可以选择开具个人或单位发票,并获取相关发票信息,如抬头、税号、公司地址等。在文中,详细描述了JS-SDK的初始化、发票接口的调用方式,并提供了完整的代码示例。文章还介绍了如何处理返回的发票信息,帮助开发者快速集成微信发票功能。
485 2
|
网络安全 开发工具 Python
【Azure事件中心】使用Python SDK(Confluent)相关方法获取offset或lag时提示SSL相关错误
【Azure事件中心】使用Python SDK(Confluent)相关方法获取offset或lag时提示SSL相关错误
108 1
|
Java 开发工具 Windows
【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
107 0
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
API 开发工具
企业微信SDK接口API调用-触发推送企业微信微信好友
企业微信SDK接口API调用-触发推送企业微信微信好友
|
开发工具
抖音sdk接口,抖音上线下线
抖音sdk接口,抖音上线下线
|
2月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
424 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
9月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
578 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
422 0
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
239 7