Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ String localAccountId = ACallkitSdkFactory.getInstance().getAccountMgr().getAcco

你可以通过客户端 Android API 参考(纯呼叫)了解 API 的详细信息。

- [客户端纯呼叫 API 参考](/api-ref/iot-apaas/android/client-api/call)
- [客户端纯呼叫 API 参考](/zh-CN/api-reference/iot-apaas/client-api/call)

</PlatformStructured>

Expand Down Expand Up @@ -666,7 +666,7 @@ AgoraIotSdk.iotsdk.accountMgr.logout(result: {errCode,errMsg in})

## 参考信息

- [客户端纯呼叫 API 参考](/api-ref/iot-apaas/ios/client-api/call)
- [客户端纯呼叫 API 参考](/zh-CN/api-reference/iot-apaas/client-api/call)

</PlatformStructured>

Expand Down Expand Up @@ -1033,6 +1033,6 @@ onLaunch() {

### API 参考

- [客户端纯呼叫 API 参考](/api-ref/iot-apaas/wechat/client-api/call)
- [客户端纯呼叫 API 参考](/zh-CN/api-reference/iot-apaas/client-api/call)

</PlatformStructured>
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ public void onUnregisterDone(int errCode, String account) { }

## 参考信息

- [客户端全功能 API 参考](/api-ref/iot-apaas/android/overview)
- [客户端全功能 API 参考](/zh-CN/api-reference/iot-apaas/client-api/full)

</PlatformStructured>

Expand Down Expand Up @@ -933,6 +933,6 @@ AgoraIotSdk.iotsdk.accountMgr.unregister(result: {errCode,errMsg in})

## 参考信息

- [客户端全功能 API 参考](/api-ref/iot-apaas/ios/client-api/full)
- [客户端全功能 API 参考](/zh-CN/api-reference/iot-apaas/client-api/full)

</PlatformStructured>
Original file line number Diff line number Diff line change
Expand Up @@ -402,4 +402,4 @@ void install_signal_handler(void)

## 参考信息

- [设备端纯呼叫 API 参考](/api-ref/iot-apaas//device-sdk/call/config)
- [设备端纯呼叫 API 参考](/zh-CN/api-reference/iot-apaas/device-sdk/call/config)
Original file line number Diff line number Diff line change
Expand Up @@ -477,4 +477,4 @@ void install_signal_handler(void)

## 参考信息

- [设备端全功能 API 参考](/api-ref/iot-apaas//device-sdk/full/config)
- [设备端全功能 API 参考](/zh-CN/api-reference/iot-apaas/device-sdk/full/config)
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ title: "合唱"

### 1. 加入频道

调用 [`joinChannel`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_joinchannel2) 加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/api-ref/rtc/android/API/toc_audio_basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。
调用 [`joinChannel`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_joinchannel2) 加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/zh-CN/api-reference/rtc/android/audio/audio-basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。

```kotlin
// 加入频道
Expand Down Expand Up @@ -85,7 +85,7 @@ ktvApiProtocol.switchSingerRole(KTVSingRole.Audience, null);

### 4. 根据角色更新媒体选项

通过 [`updateChannelMediaOptions`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelMediaOptions`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_updatechannelmediaoptions) 方法在加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

```kotlin
val channelMediaOption = ChannelMediaOptions()
Expand All @@ -103,7 +103,7 @@ mRtcEngine.updateChannelMediaOptions(channelMediaOption)

### 1. 加入频道

调用 [`joinChannel`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_joinchannel2) 让伴唱加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/api-ref/rtc/android/API/toc_audio_basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。
调用 [`joinChannel`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_joinchannel2) 让伴唱加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/zh-CN/api-reference/rtc/android/audio/audio-basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。

```kotlin
// 加入频道
Expand Down Expand Up @@ -146,7 +146,7 @@ ktvApiProtocol.switchSingerRole(KTVSingRole.Audience, null);

### 4. 根据角色更新媒体选项

通过 [`updateChannelMediaOptions`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在伴唱加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelMediaOptions`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_updatechannelmediaoptions) 方法在伴唱加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

```kotlin
val channelMediaOption = ChannelMediaOptions()
Expand All @@ -164,7 +164,7 @@ mRtcEngine.updateChannelMediaOptions(channelMediaOption)

### 1. 加入频道

调用 [`joinChannel`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_joinchannel2) 让听众加入频道,订阅音频流。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/api-ref/rtc/android/API/toc_audio_basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。
调用 [`joinChannel`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_joinchannel2) 让听众加入频道,订阅音频流。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/zh-CN/api-reference/rtc/android/audio/audio-basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `MUSIC_HIGH_QUALITY`,将音频场景设为 `AUDIO_SCENARIO_GAME_STREAMING`。

```kotlin
// 加入频道
Expand Down Expand Up @@ -195,7 +195,7 @@ ktvApiProtocol.loadMusic(songCode, KTVLoadMusicConfiguration("<SongId>", "<MainS

### 3. 根据角色更新媒体选项

通过 [`updateChannelMediaOptions`](/api-ref/rtc/android/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在听众加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelMediaOptions`](/zh-CN/api-reference/rtc/android/channel#api_irtcengine_updatechannelmediaoptions) 方法在听众加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

听众的用户角色为 `CLIENT_ROLE_AUDIENCE`,因此无法在频道内发布音频流。如果听众想上麦与演唱者语聊,需要将用户角色修改为 `CLIENT_ROLE_BROADCASTER`。修改角色后,SDK 默认发布该连麦听众的音频流,主唱、伴唱、其他听众都能听到连麦听众的声音。

Expand Down Expand Up @@ -232,8 +232,8 @@ mRtcEngine.updateChannelMediaOptions(channelMediaOption)

本文集成步骤中使用如下 API:

- [实时互动 API](/api-ref/rtc/android/API/rtc_api_overview)
- [K 歌房场景化 API](/api-ref/online-ktv/android/ktvapi)
- [实时互动 API](/zh-CN/api-reference/rtc/android/rtc-api-overview)
- [K 歌房场景化 API](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api)

## 相关文档

Expand Down Expand Up @@ -265,7 +265,7 @@ mRtcEngine.updateChannelMediaOptions(channelMediaOption)

### 1. 加入频道

调用 [`joinChannelByToken`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_joinchannel2) 加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/api-ref/rtc/ios/API/toc_audio_basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `AgoraAudioProfileMusicHighQuality`,调用 [`setAudioScenario`](/api-ref/rtc/ios/API/toc_audio_basic#api_irtcengine_setaudioscenario) 将音频场景设为 `AgoraAudioScenarioGameStreaming`。
调用 [`joinChannelByToken`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_joinchannel2) 加入频道。为保证高音质,声网推荐你在加入频道前调用 [`setAudioProfile`](/zh-CN/api-reference/rtc/ios/audio/audio-basic#api_irtcengine_setaudioprofile2) 将音频编码属性设为 `AgoraAudioProfileMusicHighQuality`,调用 [`setAudioScenario`](/zh-CN/api-reference/rtc/ios/audio/audio-basic#api_irtcengine_setaudioscenario) 将音频场景设为 `AgoraAudioScenarioGameStreaming`。

```objc
// 加入频道
Expand Down Expand Up @@ -347,7 +347,7 @@ songConfig.mainSingerUid = mainSingerUid;

### 4. 根据角色更新媒体选项

通过 [`updateChannelWithMediaOptions`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在主播加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelWithMediaOptions`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_updatechannelmediaoptions) 方法在主播加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

```objc
AgoraRtcChannelMediaOptions* options = [AgoraRtcChannelMediaOptions new];
Expand All @@ -365,7 +365,7 @@ options.clientRoleType = AgoraClientRoleBroadcaster;

### 1. 加入频道

调用 [`joinChannelByToken`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_joinchannel2) 让伴唱加入频道。
调用 [`joinChannelByToken`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_joinchannel2) 让伴唱加入频道。

```objc
// 加入频道
Expand Down Expand Up @@ -415,7 +415,7 @@ songConfig.mainSingerUid = mainSingerUid;

### 4. 根据角色更新媒体选项

通过 [`updateChannelWithMediaOptions`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在伴唱加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelWithMediaOptions`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_updatechannelmediaoptions) 方法在伴唱加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

```objc
AgoraRtcChannelMediaOptions* options = [AgoraRtcChannelMediaOptions new];
Expand All @@ -433,7 +433,7 @@ options.clientRoleType = AgoraClientRoleBroadcaster;

### 1. 加入频道

调用 [`joinChannelByToken`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_joinchannel2) 让听众加入频道。
调用 [`joinChannelByToken`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_joinchannel2) 让听众加入频道。

```objc
// 加入频道
Expand Down Expand Up @@ -477,7 +477,7 @@ songConfig.mainSingerUid = mainSingerUid;

### 3. 根据角色更新媒体选项

通过 [`updateChannelWithMediaOptions`](/api-ref/rtc/ios/API/toc_channel#api_irtcengine_updatechannelmediaoptions) 方法在听众加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。
通过 [`updateChannelWithMediaOptions`](/zh-CN/api-reference/rtc/ios/channel#api_irtcengine_updatechannelmediaoptions) 方法在听众加入频道后更新频道媒体选项,例如是否开启本地音频采集,是否发布本地音频流等。

听众的用户角色为 `AgoraClientRoleAudience`,因此无法在频道内发布音频流。如果听众想上麦与主唱/伴唱语聊,需要将用户角色修改为 `AgoraClientRoleBroadcaster`。修改角色后,SDK 默认发布该连麦听众的音频流,主唱、伴唱、其他听众都能听到连麦听众的声音。

Expand Down Expand Up @@ -514,7 +514,7 @@ options.clientRoleType = AgoraClientRoleAudience;

本文集成步骤中使用如下 API:

- [实时互动 API](/api-ref/rtc/ios/API/rtc_api_overview)
- [K 歌房场景化 API](/api-ref/online-ktv/ios/ktvapi)
- [实时互动 API](/zh-CN/api-reference/rtc/ios/rtc-api-overview)
- [K 歌房场景化 API](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api)

</PlatformStructured>
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,9 @@ val ktvApiProtocol =
```

:::info[信息]
当用于音乐内容中心鉴权的的 RTM Token 即将过期时,你会收到 [onTokenPrivilegeWillExpire](/api-ref/online-ktv/android/ktvapi#ontokenprivilegewillexpire) 回调。你需要调用 `KTVApi` 下的 [renewToken](/api-ref/online-ktv/android/ktvapi#renewtoken) 来更新 Token。
当用于音乐内容中心鉴权的的 RTM Token 即将过期时,你会收到 [onTokenPrivilegeWillExpire](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#ontokenprivilegewillexpire) 回调。你需要调用 `KTVApi` 下的 [renewToken](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#renewtoken) 来更新 Token。
:::

<a id="步骤2"></a>
### 2. 获取歌曲列表

你可以调用 `searchSong` 来通过关键词搜索歌曲,也可以调用 `fetchMusicCharts` 来获取音乐榜单,然后再调用 `searchMusicByMusicChartId` 来通过歌曲榜单的 ID 获取指定榜单的歌曲资源列表。
Expand Down Expand Up @@ -108,7 +107,7 @@ fun searchSongWithRankingChartId(type: Int, page: Int) {
```

:::warning[注意]
你可以通过 `jsonOption` 字段来筛选有副歌片段、支持打分的音乐资源。`jsonOption` 字段的具体说明见 [searchMusicByKeyword](/api-ref/online-ktv/android/ktvapi#searchmusicbykeyword) 及 [searchMusicByMusicChartId](/api-ref/online-ktv/android/ktvapi#searchmusicbymusicchartid) 的 API 文档。
你可以通过 `jsonOption` 字段来筛选有副歌片段、支持打分的音乐资源。`jsonOption` 字段的具体说明见 [searchMusicByKeyword](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#searchmusicbykeyword) 及 [searchMusicByMusicChartId](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#searchmusicbymusicchartid) 的 API 文档。
:::

### 3. 加载及播放版权音乐
Expand Down Expand Up @@ -166,8 +165,8 @@ ktvApiProtocol.removeMusic(songCode)

本文集成步骤中使用如下 API:

- [K 歌房场景化 API](/api-ref/online-ktv/android/ktvapi)
- [实时互动 API](/api-ref/rtc/android/API/rtc_api_overview)
- [K 歌房场景化 API](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api)
- [实时互动 API](/zh-CN/api-reference/rtc/android/rtc-api-overview)

## 相关文档

Expand Down Expand Up @@ -231,10 +230,9 @@ KTVApiConfig *apiConfig = [[KTVApiConfig alloc]initWithAppId:[[AppContext shared
```

:::info[信息]
当用于音乐内容中心鉴权的的 RTM Token 即将过期时,你会收到 [onTokenPrivilegeWillExpire](/api-ref/online-ktv/ios/ktvapi#ontokenprivilegewillexpire) 回调。你需要调用 `KTVApi` 下的 [renewToken](/api-ref/online-ktv/ios/ktvapi#renewtoken) 来更新 Token。
当用于音乐内容中心鉴权的的 RTM Token 即将过期时,你会收到 [onTokenPrivilegeWillExpire](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#ontokenprivilegewillexpire) 回调。你需要调用 `KTVApi` 下的 [renewToken](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#renewtoken) 来更新 Token。
:::

<a id="步骤2"></a>
### 2. 获取歌曲列表

你可以调用 `searchMusic`[2/2] 来通过关键词搜索歌曲,也可以调用 `fetchMusicCharts` 来获取音乐榜单,然后再调用 `searchMusic`[1/2] 来通过歌曲榜单的 ID 获取指定榜单的歌曲资源列表。
Expand Down Expand Up @@ -289,7 +287,7 @@ KTVApiConfig *apiConfig = [[KTVApiConfig alloc]initWithAppId:[[AppContext shared
```

:::warning[注意]
你可以通过 `jsonOption` 字段来筛选有副歌片段、支持打分的音乐资源。`jsonOption` 字段的具体说明见 [searchMusic[1/2]](/api-ref/online-ktv/ios/ktvapi#searchmusic) 及 [searchMusic[2/2]](/api-ref/online-ktv/ios/ktvapi#searchmusic2) 的 API 文档。
你可以通过 `jsonOption` 字段来筛选有副歌片段、支持打分的音乐资源。`jsonOption` 字段的具体说明见 [searchMusic[1/2]](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#searchmusic) 及 [searchMusic[2/2]](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api#searchmusic2) 的 API 文档。
:::

### 3. 加载及播放版权音乐
Expand Down Expand Up @@ -358,8 +356,8 @@ songConfig.mainSingerUid = mainSingerUid;

本文集成步骤中使用如下 API:

- [K 歌房场景化 API](/api-ref/online-ktv/android/ktvapi)
- [实时互动 API](/api-ref/rtc/android/API/rtc_api_overview)
- [K 歌房场景化 API](/zh-CN/solutions/online-ktv/ktv-scenario/reference/ktv-api)
- [实时互动 API](/zh-CN/api-reference/rtc/android/rtc-api-overview)

## 相关文档

Expand Down
Loading
Loading