tencent cloud

Tencent Real-Time Communication

お知らせ・リリースノート
製品アップデート情報
Tencent Cloudオーディオビデオ端末SDKの再生アップグレードおよび承認チェック追加に関するお知らせ
TRTCアプリケーションのサブスクリプションパッケージサービスのリリースに関する説明について
製品の説明
製品概要
基礎概念
製品の機能
製品の強み
ユースケース
性能データ
購入ガイド
Billing Overview
無料時間の説明
Monthly subscription
Pay-as-you-go
TRTC Overdue and Suspension Policy
課金に関するよくあるご質問
Refund Instructions
初心者ガイド
Demo体験
Call
コンポーネントの説明(TUICallKit)
Activate the Service
Run Demo
クイック導入
オフライン通知
Conversational Chat
クラウドレコーディング(TUICallKit)
AI Noise Reduction
インターフェースのカスタマイズ
Calls integration to Chat
Additional Features
No UI Integration
Server APIs
Client APIs
Solution
ErrorCode
公開ログ
よくある質問
ライブ配信
Billing of Video Live Component
Overview
Activating the Service (TUILiveKit)
Demo のクイックスタート
No UI Integration
UI Customization
Live Broadcast Monitoring
Video Live Streaming
Voice Chat Room
Advanced Features
Client APIs
Server APIs
Error Codes
Release Notes
FAQs
RTC Engine
Activate Service
SDKのダウンロード
APIコードサンプル
Usage Guidelines
クライアント側 API
高度な機能
RTC RESTFUL API
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
コンソールガイド
アプリケーション管理
使用統計
監視ダッシュボード
開発支援
Solution
Real-Time Chorus
よくあるご質問
課金関連問題
機能関連
UserSig関連
ファイアウォールの制限の対応関連
インストールパッケージの圧縮に関するご質問
AndriodおよびiOS関連
Web端末関連
Flutter関連
Electron関連
TRTCCalling Web関連
オーディオビデオ品質関連
その他のご質問
旧バージョンのドキュメント
TUIRoom(Web)の統合
TUIRoom (Android)の統合
TUIRoom (iOS)の統合
TUIRoom (Flutter)の統合
TUIRoom (Electron)の統合
TUIRoom APIのクエリー
クラウドレコーディングと再生の実現(旧)
Protocols and Policies
セキュリティコンプライアンス認証
セキュリティホワイトペーパー
情報セキュリティの説明
Service Level Agreement
Apple Privacy Policy: PrivacyInfo.xcprivacy
TRTC ポリシー
プライバシーポリシー
データ処理とセキュリティ契約
用語集
ドキュメントTencent Real-Time Communication

ライブストリーミングクイックスタート(Android)

フォーカスモード
フォントサイズ
最終更新日: 2024-07-19 15:12:39

ユースケース

TRTCは、4種類の異なる入室モードをサポートしています。このうち、ビデオ通話(VideoCall)および音声通話(VoiceCall)を総称して通話モードといい、ビデオ・インタラクティブストリーミング(Live)およびボイス・インタラクティブストリーミング(VoiceChatRoom)を総称してライブストリーミングモードといいます。 ライブストリーミングモードでのTRTCは、1つのルームで最大10万人の同時接続をサポートし、300ms未満のマイク接続遅延、1000ms未満の視聴遅延およびマイクのオン・オフのスムーズな切り替え技術を備えています。低レイテンシーインタラクティブストリーム、10万人のインタラクティブ教室、ビデオ婚活、eラーニング、リモート研修、超大規模ミーティングなどのユースケースに適しています。

原理解析

TRTCクラウドサービスは、「インターフェースモジュール」および「プロキシモジュール」という2種類の異なるタイプのサーバーノードから構成されています。
インターフェースモジュール この種のノードは、最も良質の回線および高性能の機器を採用しており、エンドツーエンドの低遅延マイク接続通話の処理に優れています。
プロキシモジュール この種のノードは、通常の回線および性能も一般的な機器を採用しており、同時進行性の高いプルストリーミング再生ニーズの処理にすぐれています。
ライブストリーミングモードでは、TRTCはロールのコンセプトを導入し、ユーザーは「キャスター」および「視聴者」の2種類のロールに分けられ、「キャスター」はインターフェースモジュールに配分され、「視聴者」はプロキシモジュールに分配されます。同一ルームの視聴者の上限は10万人です。 「視聴者」をマイク・オンにしたい場合、まずロール(switchRole)を「キャスター」に切り替えると発言できます。ロールを切り替えることで、ユーザーをプロキシモジュールからインターフェースモジュールに移動させ、TRTC特有の低遅延視聴技術およびスムーズなマイクのオン/オフ切替技術によって、すべての切り替え時間を非常に短くすることができます。



サンプルコード

Github にログインし、本ファイルに関連するサンプルコードを取得することができます。


説明:
Githubへのアクセスが遅い場合は、 TXLiteAVSDK_TRTC_Android_latest.zipを直接ダウンロードすることもできます。

操作手順

手順1:SDKの統合

以下の方式を選択して TRTC SDK をプロジェクトに統合することができます。

方法1:自動ロード(aar)

TRTC SDKは、mavenCentralライブラリにリリースされています。更新を自動的にダウンロードするようにgradleを構成することで自動でダウンロード、更新できます。 Android Studioを使用して、SDKを統合予定のプロジェクト(TRTC-API-Exampleは統合が完了済み、サンプルコードは参照用として提供)を開き、その後簡単な手順でapp/build.gradleファイルを修正するだけで、SDKの統合を完了できます。
1. dependenciesの中にTRTCSDKの依存を追加します。
dependencies {
compile 'com.tencent.liteav:LiteAVSDK_TRTC:latest.release'
}
2. defaultConfigでAppが使用するCPUアーキテクチャを指定します。
説明:
現在 TRTC SDKは、armeabi-v7a、arm64-v8aをサポートしています。
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
3. Sync Nowをクリックし、SDKを同期します。 mavenCentralへのネットワーク接続に問題がない場合、SDKは自動的にダウンロードされ、プロジェクトに統合されます。

方法2:ZIPパッケージをダウンロードして手動で統合

ZIP圧縮パッケージを直接ダウンロードして、 クイックインテグレーション(Android)を参照してSDKをプロジェクトに統合することができます。

手順2: App権限の設定

AndroidManifest.xmlファイルにカメラ、マイクおよびネットワークのアクセス許可のリクエストを追加します。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

手順3:SDKインスタンスを初期化し、イベントコールバックを監視する

1. sharedInstance() インターフェースを使用してTRTCCloudインスタンスを作成します。
// trtcCloudインスタンスを作成
mTRTCCloud = TRTCCloud.sharedInstance(getApplicationContext());
mTRTCCloud.setListener(new TRTCCloudListener());
2. setListener属性を設定しイベントのコールバックを登録し、関連イベントおよびエラー通知をモニタします。
// エラー通知のモニタ。エラー通知は、 SDK が動作を継続できないことを示します
@Override
public void onError(int errCode, String errMsg, Bundle extraInfo) {
Log.d(TAG, "sdk callback onError");
if (activity != null) {
Toast.makeText(activity, "onError: " + errMsg + "[" + errCode+ "]" , Toast.LENGTH_SHORT).show();
if (errCode == TXLiteAVCode.ERR_ROOM_ENTER_FAIL) {
activity.exitRoom();
}
}
}

手順4:入室パラメータTRTCParamsを組み立てる

enterRoom()インターフェースを呼び出すとき、キーパラメータTRTCParamsを入力する必要があります。このパラメータに含まれる入力必須のフィールドは下表に示すとおりです。
パラメータ名
フィールドタイプ
補足説明
記入例
sdkAppId
数字
アプリケーションID。TRTCコンソールでSDKAppIDを表示できます。
1400000123
userId
文字列
アルファベットの大文字、小文字(a-z、A-Z)、数字(0-9)、下線およびハイフンのみを許可。ビジネスの実際のアカウントシステムを組み合わせて設定することをお勧めします。
test_user_001
userSig
文字列
userIdを基にuserSigは計算されます。計算方法はUserSigの計算方法 をご参照ください。
eJyrVareCeYrSy1SslI...
roomId
数字
数字タイプのルームナンバー。文字列形式のルームナンバーを使用したい場合は、TRTCParamsのstrRoomIdをご使用ください。
29834
ご注意:
TRTCは、2つの同じuserIdによる同時入室をサポートしていません。同時に入室した場合、相互に干渉します。
各端末のユースケースappSceneについては、統一する必要があります。統一していない場合、想定外のトラブルが生じる恐れがあります。

手順5:キャスター端末でのカメラのプレビューとマイク集音を起動する

1. キャスター側は、startLocalPreview()を呼び出すと、ローカルのカメラのプレビューを起動することができ、SDKがシステムにカメラの使用許可をリクエストします。
2. キャスター側は、setLocalViewFillMode()を呼び出すと、ローカルのビデオ画面の表示モードを設定することができます。
Fillモードは塗りつぶしを意味し、画面は同じ比率で拡大およびトリミングできますが、黒い縁取りは付きません。
Fitモードは適応を意味し、画面は同じ比率で縮小してスクリーンにフィットしてそのコンテンツを完全に表示しますが、黒い縁取りが付くことがあります。
3. キャスター側は、setVideoEncoderParam()インターフェースを呼び出すと、ローカルビデオのエンコードパラメータを設定できます。このパラメータにより、ルーム内の他のユーザーが視聴する際の画面の画質が決定されます。
4. キャスター側は、startLocalAudio()を呼び出すと、マイクを起動でき、SDKがシステムにマイクの使用許可をリクエストします。
//サンプルコード:ローカルのオーディオ・ビデオストリーミングの公開
mTRTCCloud.setLocalViewFillMode(TRTC_VIDEO_RENDER_MODE_FIT);
mTRTCCloud.startLocalPreview(mIsFrontCamera, localView);
//ローカルビデオコーデックパラメータの設定
TRTCCloudDef.TRTCVideoEncParam encParam = new TRTCCloudDef.TRTCVideoEncParam();
encParam.videoResolution = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_960_540;
encParam.videoFps = 15;
encParam.videoBitrate = 1200;
encParam.videoResolutionMode = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_PORTRAIT;
mTRTCCloud.setVideoEncoderParam(encParam);
mTRTCCloud.startLocalAudio();

手順6:キャスター端末により美顔エフェクトを設定する

1. キャスター側は、getBeautyManager()を呼び出すと、美顔設定インターフェースTXBeautyManagerを取得できます。
2. キャスター側は、setBeautyStyle()を呼び出すと、美顔スタイルを設定できます。
Smooth:スムース。明らかな効果が感じられます。インフルエンサーのスタイルに近づけます。
Nature:ナチュラル。美肌補正のアルゴリズムは顔の詳細な質感を維持し、より自然な感じになります。
Pitu :フル機能版 のみサポートしています。
3. キャスター側は、setBeautyLevel()を呼び出すと、美肌補正レベルを設定できます。通常、5の設定でOKです。
4. キャスター側は、setWhitenessLevel()を呼び出すと、美白レベルを設定できます。通常、5の設定でOKです。

手順7:キャスター端末からルームを新規作成し、プッシュを開始する

1. キャスター側は、TRTCParamsのフィールドroleを**TRTCCloudDef.TRTCRoleAnchor**に設定します。これは現在のユーザーのロールがキャスターであることを表します。
2. キャスター側は、enterRoom()を呼び出すと、TRTCParamsパラメータのフィールドroomIdの値をルームナンバーとするオーディオ・ビデオルームを作成し、**appScene**パラメータを指定することができます。
TRTCCloudDef.TRTC_APP_SCENE_LIVE:ビデオ・インタラクティブストリーミングモード。ここではこのモードを例にします。
TRTCCloudDef.TRTC_APP_SCENE_VOICE_CHATROOM:ボイス・インタラクティブストリーミングモード。
3. ルームの新規作成が成功すると、キャスター側は、音声ビデオデータのエンコードおよび伝送フローを開始します。同時にSDKがonEnterRoom(result)イベントをコールバックします。パラメータresultが0より大きいときは入室成功を表し、具体的な数値は入室のために消費した時間になります。単位はミリ秒(ms)です。resultが0より小さい時は入室失敗を表し、具体的な数値は入室失敗のエラーコードになります。
public void enterRoom() {
TRTCCloudDef.TRTCParams trtcParams = new TRTCCloudDef.TRTCParams();
trtcParams.sdkAppId = sdkappid;
trtcParams.userId = userid;
trtcParams.roomId = 908;
trtcParams.userSig = usersig;
mTRTCCloud.enterRoom(trtcParams, TRTCCloudDef.TRTC_APP_SCENE_LIVE);
}

@Override
public void onEnterRoom(long result) {
if (result > 0) {
toastTip("入室成功,総消費時間[∖(result)]ms")
}else{
toastTip("入室失敗,エラーコード[∖(result)]")
}
}

手順8:視聴者が入室しライブストリーミングを視聴する

1. 視聴者側は、TRTCParamsのフィールドroleを**TRTCCloudDef.TRTCRoleAudience**に設定します。これは現在のユーザーのロールが視聴者であることを表します。
2. 視聴者側は、enterRoom()を呼び出すと、TRTCParamsパラメータのroomIdが示すオーディオ・ビデオルームに入室し、**appScene**パラメータを指定することができます。
TRTCCloudDef.TRTC_APP_SCENE_LIVE:ビデオ・インタラクティブストリーミングモード。ここではこのモードを例にします。
TRTCCloudDef.TRTC_APP_SCENE_VOICE_CHATROOM:ボイス・インタラクティブストリーミングモード。
3. キャスター画面の視聴:
視聴者側が事前にキャスターのuserIdを知っている場合は、入室に成功した後、直接キャスターのuserIdを使用してstartRemoteView(userId, view)を呼び出せば、キャスターの画面を表示することができます。
視聴者側がキャスターのuserIdを知らない場合、視聴者側が、入室に成功すると、onUserVideoAvailable()イベント通知を受信しますので、コールバックにより受け取ったキャスターuserIdを使用してstartRemoteView(userId, view)を呼び出せば、キャスターの画面を表示することができます。

手順9:視聴者とキャスターとのマイク接続

1. 視聴者側がswitchRole(TRTCCloudDef.TRTCRoleAnchor)を呼び出し、ロールをキャスター(TRTCCloudDef.TRTCRoleAnchor)に切り替えます。
2. 視聴者側がstartLocalPreview()を呼び出すと、ローカルの画面をアクティブにすることができます。
3. 視聴者側がstartLocalAudio()を呼び出すと、マイクの集音が開始されます。
//サンプルコード:視聴者マイク・オン
mTrtcCloud.switchRole(TRTCCloudDef.TRTCRoleAnchor);
mTrtcCloud.startLocalAudio();
mTrtcCloud.startLocalPreview(mIsFrontCamera, localView);

//サンプルコード:視聴者マイク・オフ
mTrtcCloud.switchRole(TRTCCloudDef.TRTCRoleAudience);
mTrtcCloud.stopLocalAudio();
mTrtcCloud.stopLocalPreview();

手順10:キャスター間でルーム間マイク接続PKを行う

TRTCでは、異なるオーディオ・ビデオルームにいる2人のキャスターが当初のライブストリーミングルームを退出しない場合にも、「ルーム間通話」機能によってマイク接続通話機能をプルし、「ルーム間マイク接続PK」を行うことができます。
1. キャスターAが、connectOtherRoom()インターフェースを呼び出します。インターフェースパラメータは現在JSON形式を採用しており、キャスターBのroomIduserIdを接合して{"roomId": "978","userId": "userB"}の形式にしたパラメータをインターフェース関数に渡す必要があります。
2. クロスルームに成功すると、キャスターAはonConnectOtherRoom()のイベントコールバックを受け取ります。同時に、2つのライブストリーミングルームのすべてのユーザーがonUserVideoAvailable()onUserAudioAvailable()のイベント通知を受け取ります。 例えば、ルーム「001」のキャスターAがルーム「002」のキャスターBとconnectOtherRoom()を介してルーム間通話をする場合、ルーム「001」のユーザーはキャスターBのonUserVideoAvailable(B, true)コールバックとonUserAudioAvailable(B, true)コールバックを受信します。ルーム「002」のユーザーはキャスターAのonUserVideoAvailable(A, true)コールバックとonUserAudioAvailable(A, true)コールバックを受信します。
3. 2つのルームにいるユーザーは、startRemoteView(userId, view)を呼び出すことで、もう一方のルームのキャスターの画面を表示することができ、音声が自動的に再生されます。
//サンプルコード:ルーム間マイク接続PK
mTRTCCloud.ConnectOtherRoom(String.format("{\\"roomId\\":%s,\\"userId\\":\\"%s\\"}", roomId, username));

手順11:現在のルームから退出する

exitRoom()メソッドを呼び出してルームを退出します。SDKは退室する時に、カメラ、マイクなどのハードウェアデバイスを停止してリリースする必要があるため、退室の動作は瞬時に完了するものではなく、onExitRoom()のコールバックを受信してはじめて、実際に退室操作を完了したことになります。
// 退室を呼び出した後は、onExitRoomイベントのコールバックをお待ちください
mTRTCCloud.exitRoom()

@Override
public void onExitRoom(int reason) {
Log.i(TAG, "onExitRoom: reason = " + reason);
}
ご注意:
Appの中で多くの音声ビデオのSDKを同時に統合した場合は、onExitRoomコールバックを受信してからその他の音声ビデオSDKを起動してください。そうしない場合は、ハード上の占有問題が生じることがあります。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック