Skip to content
KTV场景Demo
Objective-C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
TTT-Ktv
TTTLib
README.md

README.md

在线KTV

在线KTV模式越来越受到大家的欢迎,在一个房间内,拿麦者可以自定义调节歌曲伴奏音量,或者进行切歌操作,房间内的多人同时可以进行实时语音聊天。

典型场景

用户A创建一个KTV房间,此时A用户就是房主,后续进入房间的角色都是观众,房主可以加载一个本地或在线的MV视频文件进行在线演唱,对房间有控制权

房主:

  1. 创建KTV房间,点歌并开始演唱;
  2. 房主关闭房间后,所有的用户退出房间;

功能列表

  1. 创建 TTT 音频引擎对象 sharedEngineWithAppId
  2. 设置频道直播模式 setChannelProfile
  3. 设置用户角色 setClientRole 麦上用户: BROADCASTER, 麦下用户: AUDIENCE
  4. 启用说话音量提示 enableAudioVolumeIndication
  5. 置视频编码属性(自定义) setVideoProfile
  6. 加入频道 joinChannelByKey
  7. 离开频道 leaveChannel
  8. 静音/取消静音,可选操作 muteLocalAudioStream
  9. 禁用/启用本地视频功能 enableLocalVideo
  10. 配置外部视频源 setExternalVideoSource
  11. 推送外部视频帧 pushExternalVideoFrame
  12. 推送外部音频数据 pushExternalAudioData参考SDK

重要接口

  1. setExternalVideoSource KTV模式在加入房间之前必须启用该接口
  2. pushExternalVideoFrame 推送TTTPlayerKit回调的视频数据
  3. -(void)rtcEngine:(TTTRtcEngineKit )engine pullAudioData:(char )data size:(int)size sampleRate:(NSUInteger)sampleRate channels:(int)channels 实现TTTRtcEngineDelegate回调,在回调里面拉取TTTPlayerKit里音频数据,在TTTPlayerDelegateKTV音频数据回调里面 推送外部音频数据pushExternalAudioData**
  4. TTTPlayerKit相关使用封装在KTVManager,接口使用参考demo

示例程序

准备工作

  1. 在三体云官网SDK下载页 http://3ttech.cn/index.php?menu=53 下载对应平台的 连麦直播SDK。
  2. 登录三体云官网 http://dashboard.3ttech.cn/index/login 注册体验账号,进入控制台新建自己的应用并获取APPID。

iOS工程配置

SDK包含TTTRtcEngineVoiceKit.frameworkTTTPlayerKit.framework

两个framework只支持真机,不支持模拟器

KTVManager.m目录下填写申请的AppID

工程已做如下配置,直接运行工程

  1. 设置Bitcode为NO
  2. 设置后台音频模式
  3. 导入系统库
  • libxml2.tbd
  • libc++.tbd
  • libz.tbd
  • libsqlite3.tbd
  • ReplayKit.framework
  • CoreTelephony.framework
  • SystemConfiguration.framework

常见问题

  1. 由于部分模拟器会存在功能缺失或者性能问题,所以 SDK 不支持模拟器的使用。
You can’t perform that action at this time.