すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:Android SDK の統合

最終更新日:Nov 09, 2025

このトピックでは、Android で音声チャット用の SDK を統合する方法について説明し、関連するサンプルコードを提供します。

前提条件

ARTC アプリケーションを準備し、SDK を統合する手順については、「Android クライアントでの音声通話とビデオ通話の実装」をご参照ください。このトピックでは、音声チャットルームを実装するための開発ステップと特徴について説明します。

実装図

image.png

機能の実装

ストリーマーがチャンネルを作成する

mAliRtcEngine.setChannelProfile(AliRTCSdkInteractiveLive);
mAliRtcEngine.setClientRole(AliRTCSdkInteractive);
/* 高品質の音楽が必要なシナリオでこれを使用することをお勧めします。 */
mAliRtcEngine.setAudioProfile(AliRtcEngineHighQualityMode, AliRtcSceneMusicMode);

/* コールバック用のリスナーを設定します。 */
mAliRtcEngine.setRtcEngineEventListener(this);
//自動公開
mAliRtcEngine.publishLocalAudioStream(true);
//自動サブスクライブ
mAliRtcEngine.setDefaultSubscribeAllRemoteAudioStreams(true);
mAliRtcEngine.subscribeAllRemoteAudioStreams(true);
mAliRtcEngine.setAudioOnlyMode(true);

JSONObject tokenv2 = new JSONObject();
tokenv2.put("appid", userInfo.appId);
tokenv2.put("channelid", userInfo.channelId);
tokenv2.put("userid", userInfo.userId);
tokenv2.put("nonce", userInfo.nonce);
tokenv2.put("timestamp", userInfo.timestamp);
tokenv2.put("gslb",userInfo.gslb);
tokenv2.put("token", userInfo.token);
String base64TokenV2 = Base64.encodeToString(JSON.toJSONBytes(tokenv2),Base64.NO_WRAP);
/* チャンネルに参加します。 */
mAliRtcEngine.joinChannel(base64TokenV2, null, null, mUsername);

視聴者がチャンネルに参加する

視聴者がルームに参加するために呼び出されるメソッドは、ストリーマーがルームを作成するために呼び出されるメソッドと同じです。視聴者が通常の視聴者か、または共同ストリーマーかに基づいてロールを指定します。次のサンプルコードは、視聴者が通常の視聴者である場合の例を示しています。

mAliRtcEngine.setChannelProfile(AliRTCSdkInteractiveLive);
/* 視聴者のロール。 */
mAliRtcEngine.setClientRole(AliRTCSdkLive);
/* 高品質の音楽が必要なシナリオでこれを使用することをお勧めします。 */
mAliRtcEngine.setAudioProfile(AliRtcEngineHighQualityMode, AliRtcSceneMusicMode);
/* コールバック用のリスナーを設定します。 */
mAliRtcEngine.setRtcEngineEventListener(this);
//自動公開
mAliRtcEngine.publishLocalAudioStream(true);
//自動サブスクライブ
mAliRtcEngine.setDefaultSubscribeAllRemoteAudioStreams(true);
mAliRtcEngine.subscribeAllRemoteAudioStreams(true);
mAliRtcEngine.setAudioOnlyMode(true);

JSONObject tokenv2 = new JSONObject();
tokenv2.put("appid", userInfo.appId);
tokenv2.put("channelid", userInfo.channelId);
tokenv2.put("userid", userInfo.userId);
tokenv2.put("nonce", userInfo.nonce);
tokenv2.put("timestamp", userInfo.timestamp);
tokenv2.put("gslb",userInfo.gslb);
tokenv2.put("token", userInfo.token);
String base64TokenV2 = Base64.encodeToString(JSON.toJSONBytes(tokenv2),Base64.NO_WRAP);
/* チャンネルに参加します。 */
mAliRtcEngine.joinChannel(base64TokenV2, null, null, mUsername);

視聴者がロールを切り替える

/* チャンネルに参加したユーザーのロールをストリーマーに切り替えます。 */
mAliRtcEngine.setClientRole(AliRTCSdkLive);

ボリューム、ボイスチェンジャー、リバーブの設定

/* ローカルの録音ボリュームを調整します。 */
mAliRtcEngine.setRecordingVolume(volumeLevel);
/* 特定のリモートユーザーのボリュームを調整します。 */
mAliRtcEngine.setRemoteAudioVolume(uid, volume);
/* すべてのサウンドの再生ボリュームを調整します。 */
mAliRtcEngine.setPlayoutVolume(uid, volume);
/* ボイスチェンジャーを設定します。 */
mAliRtcEngine.setAudioEffectVoiceChangerMode(AliRtcSdk_AudioEffect_Voice_Changer_Oldman);
/* リバーブを設定します。 */
mAliRtcEngine.setAudioEffectReverbParamType(AliRtcEngine.AliRtcAudioEffectReverbParamType.AliRtcSdk_AudioEffect_Reverb_Room_Size, value);

バックグラウンドミュージックの再生

PCM データ入力

音楽入力の作成
AliRtcEngine.AliRtcExternalAudioStreamConfig config = new AliRtcEngine.AliRtcExternalAudioStreamConfig();
config.sampleRate = sampleRate;
config.channels = channels;
/* 伴奏のローカル再生ボリューム。ARTC SDK を使用して再生を実装する場合、この値を設定できます。 */
config.playoutVolume = 60;
config.publishVolume = 100;
int externalAudioStreamId = aliRtcEngine.addExternalAudioStream(config);
PCM データの入力
/* PCM データをプッシュします。 */ 
AliRtcEngine.AliRtcAudioFrame sample = new AliRtcEngine.AliRtcAudioFrame();
sample.data = buffer;
sample.numSamples = numSamples;
sample.numChannels = channels;
sample.sampleRate = sampleRate;
sample.bytesPerSample = bytesPerSample;
int ret = aliRtcEngine.pushExternalAudioStreamRawData(externalAudioStreamId, sample);

ファイル入力

AliRtcEngine.AliRtcAudioAccompanyConfig config = new AliRtcEngine.AliRtcAudioAccompanyConfig();
config.onlyLocalPlay = localPlay;
config.replaceMic = replaceMic;
config.loopCycles = loopCycles;
config.startPosMs = startPosMs;
config.publishVolume = pubVolume;
config.playoutVolume = playVolume;
return mAliRtcEngine.startAudioAccompany(audioFileName, config);