このドキュメントでは、主にキャスターが自分のオーディオビデオストリームをリリースする方法を紹介します。いわゆる「リリース」とは、マイクとカメラをオンにして、ルーム内の他のユーザーが自分の音声とビデオを聞いたり見たりできるようにすることを意味します。
SDKのプロジェクトへのインポートを参照して、SDKのインポートおよびApp権限の設定を完了します。
startLocalPreviewインターフェースを呼び出して、カメラプレビューをオンにすることができます。このとき、SDKはシステムにカメラの使用権限を申請し、カメラキャプチャプロセスはユーザーの承認が渡された後にのみ開始されます。
ローカル画面のレンダリングパラメータを設定する場合は、setLocalRenderParamsインターフェースを呼び出してローカルプレビューのレンダリングパラメータを設定できます。最初にプレビューをオンにしてからプレビューパラメータを設定すると画面がジッターするのを防ぐために、プレビューパラメータを設定する必要がある場合は、プレビューを開始する前に呼び出すことをお勧めします。
カメラのさまざまな制御パラメータを制御する場合は、TXDeviceManagerインターフェースを呼び出して、「フロントカメラとリアカメラの切り替え」、「フォーカスモードの設定」、「フラッシュのオン・オフの切り替え」などの一連の操作を実行できます。
美顔効果や画質調節をご希望の場合は、画質設定で詳しく紹介します。
// ローカル画面のプレビューモードを設定します。左右のイメージをオンにし、画面を塗りつぶしモードに設定します
TRTCCloudDef.TRTCRenderParams param = new TRTCCloudDef.TRTCRenderParams();
param.fillMode = TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_FILL;
param.mirrorType = TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_AUTO;
mCloud.setLocalRenderParams(param);
// ローカルカメラのプレビューを開始します(localCameraVideoはローカルレンダリング画面をレンダリングするためのコントロールです)
TXCloudVideoView cameraVideo = findViewById(R.id.txcvv_main_local);
mCloud.startLocalPreview(true, cameraVideo);
// TXDeviceManagerを介して自動フォーカスをオンにし、フラッシュをオンにします
TXDeviceManager manager = mCloud.getDeviceManager();
if (manager.isAutoFocusEnabled()) {
manager.enableCameraAutoFocus(true);
}
manager.enableCameraTorch(true);
startLocalAudioを呼び出してマイクのキャプチャをオンにするができます。このインターフェースは、quality
パラメータを使用してキャプチャモードを決定してください。このパラメータの名前はqualityと呼ばれますが、品質が高いほどより良いという意味ではありません。さまざまなサービスシーンで最適なパラメータを選択できます(このパラメータのより正確な意味はsceneです)。
// マイクのキャプチャをオンにし、現在のシーンを音声モード(ノイズ抑制能力が高く、弱いネットワークに対する耐性が強い)に設定します
mCloud.startLocalAudio(TRTCCloudDef.TRTC_AUDIO_QUALITY_SPEECH );
// マイクのキャプチャをオンにし、現在のシーンを音楽モード(ハイファイキャプチャ、低音質損失、プロのサウンドカードでの使用を推薦)に設定します
mCloud.startLocalAudio(TRTCCloudDef.TRTC_AUDIO_QUALITY_MUSIC);
入室を参照して現在のユーザーが入室します。入室すると、SDKはルーム内の他のユーザーに自分のオーディオストリームをリリースします。
注意:当然ながら、入室(enterRoom)後にカメラプレビューとマイクキャプチャを開始することもできますが、ライブストリーミングシーンでは、キャスターにマイクのテストと美顔調整の時間を与える必要があるため、カメラとマイクを起動してから入室する方法は一般的です。
mCloud = TRTCCloud.sharedInstance(getApplicationContext());
mCloud.setListener(mTRTCCloudListener);
// TRTC入室パラメータを組み立てるには、TRTCParamsの各フィールドを独自のパラメータに置き換えてください
// Please replace each field in TRTCParams with your own parameters
TRTCCloudDef.TRTCParams param = new TRTCCloudDef.TRTCParams();
params.sdkAppId = 1400000123; // Please replace with your own SDKAppID
params.userId = "denny"; // Please replace with your own userid
params.roomId = 123321; // Please replace with your own room number
params.userSig = "xxx"; // Please replace with your own userSig
params.role = TRTCCloudDef.TRTCRoleAnchor;
// 「オンラインライブストリーミング」のシーンの場合、ユースケースをTRTC_APP_SCENE_LIVEに設定してください
// If your application scenario is a video call between several people, please use "TRTC_APP_SCENE_LIVE"
mCloud.enterRoom(param, TRTCCloudDef.TRTC_APP_SCENE_LIVE);
TRTCの「ロール」
ロールの切り替え
TRTCでは、「キャスター(Anchor)」のみがオーディオビデオストリームをリリースする権限を持っています。「視聴者(Audience(」はオーディオビデオストリームをリリースできません。
したがって、入室時に使用するロールが「視聴者(Audience)」である場合は、オーディオビデオストリームのリリース(「マイク・オン」とも呼ばれる)前に、switchRoleインターフェースを呼び出してロールを「キャスター(Anchor)」に切り替える必要があります。
// 現在のロールが視聴者(Audience)の場合は、最初にswitchRoleを呼び出してキャスター(Anchor)に切り替えてください
// If your current role is 'audience', you need to call switchRole to switch to 'anchor' first
mCloud.switchRole(TRTCCloudDef.TRTCRoleAnchor);
mCloud.startLocalAudio(TRTCCloudDef.TRTC_AUDIO_QUALITY_DEFAULT);
mCloud.startLocalPreview(true, cameraVide);
// ロールの切り替えに失敗した場合、onSwitchRoleコールバックのエラーコードは0ではありません
// If switching operation failed, the error code of the 'onSwitchRole' is not zero
@Override
public void onSwitchRole(final int errCode, final String errMsg) {
if (errCode != 0) {
Log.d(TAG, "Switching operation failed...");
}
}
注:ルームにキャスターが多すぎると、switchRoleはロールの切り替えに失敗し、エラーコードがTRTCのonSwitchRoleを介して通知されます。したがって、オーディオビデオストリームをリリースする必要がなくなったら(「マイク・オフ」とも呼ばれる)、switchRoleを再度呼び出して、「視聴者(Audience)」に切り替えてください。
説明:質問がある場合があるかもしれませんが、オーディオビデオストリームをリリースできるのはキャスターなら、すべてのユーザーにキャスターのロールで入室させることはできますか?答えは間違いなく「いいえ」です。その理由については、1つのルームに同時に存在するオーディオとビデオのチャネルはいくつですか?ドキュメントをご参照ください。
1つのTRTCルームに最大50チャネルのオーディオビデオストリームが同時に許可されます。「先着順」の原則に従って、余分なオーディオビデオストリームは破棄されます。
大部分のシーンでは、2人の間のビデオ通話から、数万人が同時に視聴するオンラインライブストリーミングまで、50のオーディオビデオストリームがユースケースのニーズを満たすことができますが、ロール管理を適切に行うことが前提です。
いわゆる「ロール管理」とは、入室するユーザーにロールをアサインする必要があるということです。
「視聴者」がオーディオビデオストリームをリリースする必要がある(「マイク・オン」)場合にのみ、switchRoleを介して「キャスター」のロールに切り替える必要があります。オーディオビデオストリームをリリースする必要がなくなった(「マイク・オフ」)場合は、すぐ視聴者のロールに戻してください。
合理的なロール管理により、通常、ルームでオーディオビデオストリームを同時にリリースする必要のある「キャスター」は50人以下であることがわかります。そうしないと、ルーム全体が「乱雑」になります。同時音声数が6チャンネルを超えると、一般の人が現在音声から話している相手を特定することは困難です。
この記事はお役に立ちましたか?