Skip to content

Commit

Permalink
ios docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Suri539 committed Sep 26, 2023
1 parent 2ee96f0 commit 7bf3ee1
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -264,12 +264,6 @@ public class AUIRoomConfig {

- `rtcRtmToken`:RTM Token,用于音乐内容中鉴权。

<Admonition type="caution" title="注意">

请确保你使用的 RTM Token 是 AccessToken。详见 <a href="https://docportal.shengwang.cn/cn/Real-time-Messaging/token_upgrade_rtm#参考">使用 RTM Token 鉴权</a>。

</Admonition>

- `rtcChorusChannelName`:合唱频道名。在合唱场景下,领唱需要加入两个频道,在主频道发布人声和播放器的混流,在合唱频道发布麦克风采集的音频流,伴唱需要加入合唱频道来同步领唱的人声。独唱场景下,该参数可为空。

- `rtcChorusRtcToken`:根据合唱频道名和用户 ID 生成的 RTC Token,用于加入合唱频道时进行鉴权。独唱场景下,该参数可为空。
Expand Down
41 changes: 16 additions & 25 deletions markdown/online-ktv/AUIKaraoke/AUIKitKaraoke Objective-C API.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
func setup(roomConfig: AUICommonConfig,
ktvApi: KTVApiDelegate? = nil,
rtcEngine: AgoraRtcEngineKit? = nil,
rtmClient: AgoraRtmClientKit? = nil)
rtmClient: AgoraRtmClientKit? = nil)
```

初始化 `scenekit`
Expand Down Expand Up @@ -47,8 +47,8 @@ func createRoom(roomInfo: AUICreateRoomInfo,
### getRoomList

```swift
func getRoomInfoList(lastCreateTime: Int64?,
pageSize: Int,
func getRoomInfoList(lastCreateTime: Int64?,
pageSize: Int,
callback: @escaping AUIRoomListCallback)
```

Expand All @@ -60,15 +60,15 @@ func getRoomInfoList(lastCreateTime: Int64?,

- `lastCreateTime`:(可选)房间创建的时间。
- `pageSize`:每一页房间列表所展示的房间数量。
- `callback`:用于处理获取房间列表结果的回调闭包,该闭包在函数执行完成后仍然可以被调用。回调闭包接受一个 `AUIRoomListCallback` 对象作为参数。//TODO
- `callback`:用于处理获取房间列表结果的回调闭包,在成功获取房间列表结果后会被调用。回调闭包接受一个 `AUIRoomListCallback` 对象作为参数。

### launchRoom

```swift
func launchRoom(roomInfo: AUIRoomInfo,
appId: String? = nil,
config: AUIRoomConfig,
karaokeView: AUIKaraokeRoomView)
karaokeView: AUIKaraokeRoomView)
```

拉起 K 歌房间。
Expand Down Expand Up @@ -122,10 +122,10 @@ open class AUICommonConfig: NSObject {

```kotlin
open class AUIRoomInfo: AUICreateRoomInfo {
public var roomId: String = ""
public var owner: AUIUserThumbnailInfo?
public var memberCount: UInt = 0
public var createTime: Int64 = 0
public var roomId: String = ""
public var owner: AUIUserThumbnailInfo?
public var memberCount: UInt = 0
public var createTime: Int64 = 0
}
```

Expand All @@ -142,30 +142,28 @@ K 歌房间的相关信息。

```swift
open class AUIUserThumbnailInfo: NSObject,AUIUserCellUserDataProtocol {

public var userId: String = "" //用户Id
public var userName: String = "" //用户名
public var userAvatar: String = "" //用户头像
public var seatIndex: Int = -1 //用户是否在麦上
public var isOwner: Bool = false //是否是owner TODO owner是指房主吗?但是这个本来就是房主相关信息了
public var isOwner: Bool = false //是否是owner TODO owner是指房主吗?但是这个本来就是房主相关信息了 后面两个删掉

public func isEmpty() -> Bool {
guard userId.count > 0, userName.count > 0 else {return true}

return false
} //TODO
}
}
```

K 歌中房主的相关信息。//TODO 原型和input给的参数不一致
K 歌中房主的相关信息。//TODO 原型和input给的参数不一致,研发说之后会删掉后两个参数,明天确认下

**参数**

- `userId`:房主的 ID。
- `userName`:房主的用户名。
- `userAvatar`:房主的头像。
- `seatIndex`:int 类型参数,有哪些取值?
- `isOwner`

### <h3 className="anchor" id="AUIRoomConfig">AUIRoomConfig</h3>

Expand Down Expand Up @@ -194,7 +192,7 @@ open class AUIRoomConfig: NSObject {

请确保你使用的 RTM Token 是 AccessToken2。

- `rtcToken007`:(rtm login 用)加入主频道的 RTC Token。在合唱场景下,领唱需要加入两个频道,在主频道发布人声和播放器的混流,在合唱频道发布麦克风采集的音频流。// 这个token和下面的 rtcrtctoken 可以为同一个吗?
- `rtcToken007`:(rtm login 用)加入主频道的 RTC Token。在合唱场景下,领唱需要加入两个频道,在主频道发布人声和播放器的混流,在合唱频道发布麦克风采集的音频流。

- `rtcChannelName`:主频道的频道名。

Expand All @@ -208,20 +206,13 @@ open class AUIRoomConfig: NSObject {

- `rtcRtmToken`:用于音乐内容中心鉴权的 RTM Token。

<Admonition type="caution" title="注意">

请确保你使用的 RTM Token 是 AccessToken。详见 <a href="https://docportal.shengwang.cn/cn/Real-time-Messaging/token_upgrade_rtm#参考">使用 RTM Token 鉴权</a>。

</Admonition>

- `rtcChorusChannelName`:合唱频道名。在合唱场景下,领唱需要加入两个频道,在主频道发布人声和播放器的混流,在合唱频道发布麦克风采集的音频流,伴唱需要加入合唱频道来同步领唱的人声。独唱场景下,该参数可为空。

- `rtcChorusRtcToken`:根据合唱频道名和用户 ID 生成的 RTC Token,用于加入合唱频道时进行鉴权。独唱场景下,该参数可为空。

//TODO Java 有 aui exception 表述错误码和错误信息,ios 有类似的 api 吗?






4 changes: 2 additions & 2 deletions markdown/online-ktv/AUIKaraoke/demo/AUIKaraoke-demo-iOS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
声网在 GitHub 上提供一个开源的 [AUIKaraoke 示例项目](https://github.com/AgoraIO-Community/AUIKitKaraoke/tree/main)。本文介绍如何快速跑通该示例项目,体验在线 K 歌场景。//TODO 和生动互娱的demo的描述之间的差异
声网在 GitHub 上提供一个开源的 [AUIKaraoke 示例项目](https://github.com/AgoraIO-Community/AUIKitKaraoke/tree/main)。本文介绍如何快速跑通该示例项目,体验在线 K 歌场景。

## 前提条件

Expand Down Expand Up @@ -68,7 +68,7 @@ git clone [email protected]:AgoraIO-Community/AUIKitKaraoke.git

<img src="/Users/admin/Library/Application Support/typora-user-images/image-20230821174751911.png" alt="image-20230821174751911" style="zoom:50%;" />



## 常见问题

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

## 准备开发环境

//todo h ttps://github.com/AgoraIO-Community/AUIKitKaraoke/blob/main/iOS/doc/KaraokeUIKit_zh.md input 里面的前提条件是已经跑通demo,新建一个空项目不可以吗?

### 前提条件

- [Git](https://git-scm.com/downloads)
Expand All @@ -29,9 +27,8 @@

- App ID:声网随机生成的字符串,用于识别你的 app。
- 临时 Token:你的 app 客户端加入频道时会使用 Token 对用户进行鉴权。临时 Token 的有效期为 24 小时。
- rtm Token:

### 创建并配置项目
### 创建并配置项目

按照下列步骤来创建并配置你的项目。

Expand All @@ -43,12 +40,11 @@

3. 设置部署你的 app 的[目标设备](https://help.apple.com/xcode/mac/current/#/deve69552ee5)

4.`KeyCenter.swift` 文件中添加你的业务服务器域名,你也可以直接使用声网测试域名来进行体验:https://service.agora.io/uikit-karaoke。//TODO 这里的测试域名跟demo里面的不一致,要确认下
4.`KeyCenter.swift` 文件中添加你的业务服务器域名,你也可以直接使用声网测试域名来进行体验:https://service.agora.io/uikit-karaoke。

```swift
struct KeyCenter {
static var HostUrl: String = "https://test-uikit-karaoke.bj2.agoralab.co"
// static var HostUrl: String = "https://service.agora.io/uikit-karaoke" //该域名仅限体验使用,请勿用户正式商用环境
static var HostUrl: String = "https://service.agora.io/uikit-karaoke"
}
```

Expand All @@ -64,9 +60,10 @@

1. 将下列源码复制到你的项目中:

- [AUIKit](https://github.com/AgoraIO-Community/AUIKit/tree/main/iOS)
- [KaraokeUIKit](https://github.com/AgoraIO-Community/AUIKaraoke/blob/main/iOS/Example/AUIKaraoke/KaraokeUIKit.swift)
加上 karaokeuikit
- [AScenesKit](https://github.com/AgoraIO-Community/AUIKitKaraoke/tree/main/iOS/AScenesKit)
- [KeyCenter.swift](https://github.com/AgoraIO-Community/AUIKitKaraoke/blob/main/iOS/Example/AUIKitKaraoke/KeyCenter.swift)// TODO 为什么这个也要复制?
- [KeyCenter.swift](https://github.com/AgoraIO-Community/AUIKitKaraoke/blob/main/iOS/Example/AUIKitKaraoke/KeyCenter.swift)

2. 在 Podfile 文件里添加依赖。

Expand All @@ -77,22 +74,29 @@

## 实现在线 K 歌房

### 1. 初始化 KaraokeUiKit
### 1. 初始化 AUIKaraoke

创建 `AUiCommonConfig` 对象。//TODO 这一步已经做了初始化了吗?
创建 `AUiCommonConfig` 对象,调用 `setup` 初始化 AUIKaraoke。

```swift
// 创建 AUiCommonConfig 对象
let commonConfig = AUICommonConfig()
// 你的业务服务器域名
commonConfig.host = KeyCenter.HostUrl
// 用户 ID
commonConfig.userId = userInfo.userId
commonConfig.userId = userInfo.userId
// 用户名
commonConfig.userName = userInfo.userName
// 用户头像
commonConfig.userAvatar = userInfo.userAvatar
// rtmClient 可为空
let roomManager = AUIRoomManagerImpl(commonConfig: roomConfig, rtmClient: rtmClient)
// 初始化
KaraokeUIKit.shared.setup(roomConfig: commonConfig,
// KtvApi 对象。如果你的项目中还未集成 KtvApi,请传入 nil, AUIKaraoke 内部会自行创建
ktvApi: nil,
// RtcEngine 对象。如果的你的项目中还未集成声网实时互动 SDK,请传入 AUIKaraoke 内部会自行创建
rtcEngine: nil,
// RtmClient 对象。如果的你的项目中还未集成声网 RTM SDK,请传入 nil,AUIKaraoke 内部会自行创建
rtmClient: nil)
```

### 2. 创建房间
Expand All @@ -101,13 +105,18 @@ let roomManager = AUIRoomManagerImpl(commonConfig: roomConfig, rtmClient: rtmCli

```swift
let room = AUICreateRoomInfo()
// 房间名称
// 房间名
room.roomName = text
// 房主信息
room.thumbnail = userInfo.userAvatar
room.thumbnail = self.userInfo.userAvatar
// 麦位数量
room.seatCount = 8
roomManager.createRoom(room: roomInfo) { error, info in
KaraokeUIKit.shared.createRoom(roomInfo: room) { roomInfo in
let vc = RoomViewController()
vc.roomInfo = roomInfo
self.navigationController?.pushViewController(vc, animated: true)
} failure: { error in
//错误提示
}
```

Expand All @@ -116,25 +125,28 @@ roomManager.createRoom(room: roomInfo) { error, info in
调用 `getRoomList` 获取已创建房间的列表。你可以通过 `lastCreateTime` 指定房间创建的时间,从而筛选出某一时间之后创建的房间列表,还可以通过 `pageSize` 参数设置每一页展示的房间数量。

```swift
roomManager.getRoomInfoList(lastCreateTime: lastCreateTime, pageSize: pageSize, callback: callback)
KaraokeUIKit.shared.getRoomInfoList(lastCreateTime: nil,
pageSize: kListCountPerPage,
callback: { error, list in
})
```

### 4. 拉起房间

调用 `launchRooom` 拉起房间。至此,你已经成功搭建一个带有 UI 界面的在线 K 歌房间
调用 `launchRooom` 拉起房间。至此,你已经成功搭建一个带有 UI 界面的在线 K 歌房间,你可以

<Abmonition tpye="caution" title="注意">在调用该方法前,你需要先调用 <code>getRoomList</code> 获取房间列表及相关房间信息。</Abmonition>

```swift
let uid = KaraokeUIKit.shared.roomConfig?.userId ?? ""
// 创建房间容器
let karaokeView = AUIKaraokeRoomView(frame: self.view.bounds)
// 通过 generateToken 方法获取到必须的token和appid //TODO 这里生成的 token 是 rtc token还是 rtm token?
// 通过 generateToken 方法获取到 rtc 和 rtmtoken 以及 appid
generateToken { roomConfig, appId in
KaraokeUIKit.shared.launchRoom(roomInfo: self.roomInfo!,
appId: appId,
config: roomConfig,
karaokeView: karaokeView)
karaokeView: karaokeView)
}
```

Expand All @@ -146,11 +158,11 @@ K 歌结束后,你可以调用 `destroyRoom` 销毁当前房间。
//AUIKaraokeRoomView 提供了 onClickOffButton 点击返回的 clousure TODO
karaokeView.onClickOffButton = { [weak self] in
self.navigationController?.popViewController(animated: true)
KaraokeUIKit.shared.destoryRoom(roomId: self.roomInfo?.roomId ?? "")
KaraokeUIKit.shared.destoryRoom(roomId: self.roomInfo?.roomId ?? "")
}
```

### 6. token 过期处理 //TODO 这个回调需要写文档吗
### 6. token 过期处理 //TODO 这个回调需要写文档吗 之后跟chunzhen确认一下是否要一起加

```swift
//在KaraokeUIKit.shared.launchRoom之后订阅AUIRtmErrorProxyDelegate的回调
Expand All @@ -169,4 +181,4 @@ KaraokeUIKit.shared.unsubscribeError(roomId: self.roomInfo?.roomId ?? "", delega

## 示例项目

声网在 GitHub 上提供一个开源的示例项目 [AUIKitKaraoke](https://github.com/AgoraIO-Community/AUIKaraoke/tree/main/iOS) 供你参考。
声网在 GitHub 上提供一个开源的示例项目 [AUIKitKaraoke](https://github.com/AgoraIO-Community/AUIKaraoke/tree/main/iOS) 供你参考。
6 changes: 3 additions & 3 deletions markdown/online-ktv/AUIKaraoke/集成/android-集成.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,11 @@ config.userAvatar = "User Avatar"
KaraokeUiKit.setup(
// AUiCommonConfig 对象
config = config,
// RtmClient 实例。如果的你的项目中还未集成声网 RTM SDK,请传入 null,KaraokeUiKit 内部会自行创建
// RtmClient 实例。如果的你的项目中还未集成声网 RTM SDK,请传入 null,AUIKaraoke 内部会自行创建
rtmClient = null,
// RtcEngineEx 实例。如果的你的项目中还未集成声网 RTC SDK,请传入 null,KaraokeUiKit 内部会自行创建
// RtcEngineEx 实例。如果的你的项目中还未集成声网 RTC SDK,请传入 null,AUIKaraoke 内部会自行创建
rtcEngineEx = null,
// KtvApi 实例。如果你的项目中还未集成 KtvApi,请传入 null,KaraokeUiKit 内部会自行创建
// KtvApi 实例。如果你的项目中还未集成 KtvApi,请传入 null,AUIKaraoke 内部会自行创建
ktvApi = null
)
```
Expand Down

0 comments on commit 7bf3ee1

Please sign in to comment.