You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
跑通示例项目
iOS
复制全文
下载 pdf
iOS
火山引擎 RTC 提供了开源示例项目 API Example Demo。获取该项目后,你可以参照本文进行跑通,体验实时音视频功能;也能通过阅读代码,了解最佳实践。​
前提条件​
  • macOS 开发电脑,且可以正常访问互联网​
  • Xcode 14.1 或以上版本​
  • Apple 开发者账号​
  • iOS 11.0 或以上版本真机设备,且可以正常访问互联网​
获取示例项目​
你可以从以下方式中选择一种获取示例项目:​
  • 通过 GitHub 获取示例项目,具体指令如下:​
  • ​
    git clone https://github.com/volcengine/VolcEngineRTC.git​
    cd VolcEngineRTC​
    git checkout main​
    cd iOS/ApiExample​
    ​
iOS 示例项目的目录结构如下:​
​
.​
├── ApiExample​
│ ├── ApiExample-Bridging-Header.h​
│ ├── AppDelegate.swift​
│ ├── Assets.xcassets​
│ ├── QuickStart // 快速开始 /ios-swift​
│ ├── AudioManager​
│ │ ├── AudioEffectMixing // 播放音效 /play-sound-effect-file​
│ │ ├── AudioMediaMixing // 播放音乐文件 /play-music-file-mixed​
│ │ ├── AudioRawData // 原始音频数据 /native-end-get-raw-audio-data​
│ │ └── SoundEffects // 变声、混响、降噪 /belcantoandaudionoisereduction​
│ ├── AudioVideoTransmission​
│ │ └── CrossRoomPK // 跨房 PK /cross-room-forward-media-stream​
│ ├── ImportantComponents​
│ │ └── Beauty​
│ │ │ ├── BeautyViewController.swift​
│ │ │ ├── FaceUnityBeauty // 自定义视频处理(相芯美颜) /native-side-custom-video-processing​
│ │ │ └── VolcBeauty // 智能美化特效(付费版) /intelligent-beautification-effects-paid-version​
│ │ └── PullRTMP // 本地拉流 RTMP /send-supplementary-information-sei-through-media-content​
│ ├── LiveManager​
│ │ └── PushCDN // 推流到 CDN https://www.volcengine.com/docs/6348/69817​
│ ├── RoomManager​
│ │ └── MutiRoom // 多房间 /the-same-user-joins-multiple-rooms​
│ ├── SEI // 发送和接收媒体补充增强信息(SEI) /send-supplementary-information-sei-through-media-content​
│ ├── VideoManager​
│ │ ├── CommonConfig // 视频参数配置 /set-video-publish-parameters​
│ │ ├── PictureInPicture // 画中画 /mobile-multi-frontend-tasks​
│ │ └── VideoRotation // 视频采集旋转方向 /video-capture-rotation-direction​
│ ├── Base.lproj​
│ ├── Common​
│ ├── Config.swift​
│ ├── Info.plist​
│ ├── TokenGenerator​
│ └── ViewController.swift​
├── ApiExample.xcodeproj​
├── Podfile​
└── bdaudioeffect.framework​
​
配置示例项目​
  1. 在项目工程文件目录下,执行命令 pod install --repo-update 安装工程依赖。​
  • ​
    pod install --repo-update​
    ​
  1. 使用 XCode 打开 ApiExample.xcworkspace,在控制台上获取 AppID 和 AppKey,并将其分别填入 ApiExample/Config.swift 中的 kAppID 和 kAppKey。请正确填写信息,否则编译无法成功。​
  • ​图片​​
  1. 配置开发者证书:​
  1. 选中 Xcode 左侧导航栏中的 ApiExample 项目,进入 Signing & Capabilities 标签页,勾选 Automatically manage signing 自动生成证书。你也可以通过苹果官网手动配置,下载证书。​
  1. Team 选择 Personal Team。​
  1. Bundle Identifier 默认的 rtc.vertcdemo.apiexample.dev 已被注册,将其修改为其他有效的 Bundle ID。​
  • ​图片​​
  1. (可选)示例项目中智能美化特效、相芯美颜功能需要单独填写鉴权信息。不填写鉴权信息不会影响 Demo 的编译运行,但你将无法体验相关功能。​
  1. 请联系智能美化特效商务团队获取特效证书和素材资源文件。​
  1. 将获取到的证书和素材资源文件放入 ApiExample/ImportantComponents/Beauty/VolcBeauty/resource 文件夹中,勾选 Copy items if needed。​
  • ​图片​​
  1. 在 LicenseBag.bundle 中获取证书文件的文件名,并将其填入 ApiExample/Config.swift 中的 CVLicenseName。例如 let CVLicenseName = "rtc_test_vertc.veRTCDemo.ios_4.4.2_633.licbag"。请注意,证书对应的包名需与你在步骤 3 中设置的 Bundle Identifier 一致。​
  1. 下载 RTC SDK iOS 离线包,解压后获取 effect-sdk.framework 文件,将其放入 ApiExample/ImportantComponents/Beauty/VolcBeauty 文件夹中,勾选 Copy items if needed。选中项目,进入 General 设置页面,在 Frameworks, Libraries, and Embedded Content 中将 effect-sdk.framework 的属性设置为 Embed & Sign。​
  • ​图片​​
  • 相芯美颜:请联系相芯美颜商务团队 marketing@faceunity.com 获取证书,使用获取到的证书替换 ApiExample/ImportantComponents/Beauty/FaceUnityBeauty 路径下的 authpack.h 文件。​
编译并运行示例项目​
说明​
如果你尚未信任开发者,请根据 Xcode 提示,在 iOS 设备上打开设置,选择通用 > VPN 与设备管理,在开发者 APP 中单击信任开发者。​
  1. 在 Xcode 中连接并选择你的 iOS 真机设备,单击 XCode 窗口左上角的运行按钮(或使用 Command ⌘ + R 快捷键)。​
  1. 在 iOS 设备上打开 Demo 应用时,在弹窗中选择开启摄像头和麦克风权限。应用界面如下:​
  • ​图片​​
体验音视频通话功能​
为更好地体验实时音视频互动效果,你可以邀请一位朋友使用另一台设备运行该示例项目(需确保两个设备配置示例项目时填入的 App ID 和 AppKey 一致)。当你们输入相同的房间名加入房间后,即可在同一房间中体验音视频通话。​
后续步骤​
在完成音视频互动后,你可以阅读以下文档进一步了解:​
  • 在测试或生产环境中,你需要使用 Token 进行鉴权。为保证通信安全,推荐从服务器中获取 Token,详情请参考使用 Token 完成鉴权。​
  • 在实现不同的视频通话场景时,你需要配置不同的视频发布参数以达到最佳效果,详情请参考设置视频发布参数。​
常见问题​
  • 使用模拟器编译报错 No such module 'VolcEngineRTC'?​
  • 解决方案:如果你使用的是搭载 Apple 芯片的 Mac 电脑,该问题可能是编译的架构(ARM64)和模拟器的架构(x86_64)不匹配导致的,请使用真机编译。​
  • Xcode 15 编译报错 Sandbox: rsync.samba(xxxxx) deny(1)?​
  • 解决方案:选中项目,进入 TARGETS > 项目名称 > Build Settings,在 Build Options 中将 User Script Sandboxing 修改为 No。​
  • ​图片​​
相关文档​
​
最近更新时间:2026.09.28 09:46:49
这个页面对您有帮助吗?
有用
有用
无用
无用