产品百科 | 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

相关文章
|
10月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
284 0
|
2天前
|
iOS开发 开发者 Windows
uniapp云打包ios应用证书的获取方法,生成指南
打包用到的一共两个文件,一个是p12格式的私钥证书,一个是证书profile文件。其中生成p12证书的时候,按照官网的教程,是需要MAC电脑来协助做的,主要是生成一些csr文件和导出p12证书等。其实这些步骤也可以借助一些其他的工具来实现,不一定使用mac电脑,用windows电脑也可以创建。
22 0
|
7月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
4月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
89 2
|
7月前
|
iOS开发
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
354 0
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
|
10月前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
497 0
|
10月前
|
安全 编译器 开发工具
​iOS安全加固方法及实现
​iOS安全加固方法及实现
66 0
|
2月前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
170 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
4月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
27天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
65 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡

热门文章

最新文章

  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 2
    iOS|解决 setBrightness 调节屏幕亮度不生效的问题
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 7
    iOS各个证书生成细节
  • 8
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
  • 9
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 10
    uniapp云打包ios应用证书的获取方法,生成指南
  • 1
    【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
    23
  • 2
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    79
  • 3
    CompreFace:Star6.1k,Github上火爆的轻量化且强大的人脸识别库,api,sdk都支持
    54
  • 4
    【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
    29
  • 5
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    51
  • 6
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    175
  • 7
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    178
  • 8
    【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
    80
  • 9
    AutoTalk第十三期-应知必会的自动化工具-阿里云SDK支持策略(一)
    63
  • 10
    自动化AutoTalk第十期:应知必会的自动化工具-阿里云SDK
    66