ビデオ・インタラクティブストリーミングの機能をすばやく実装する必要がある場合、当社が提供するDemoをもとに直接修正を加えてフィットさせることも、当社が提供するTRTCLiveRoomコンポーネントを使用し、カスタマイズしたUIを実現することも可能です。
説明:TUIKitシリーズコンポーネントはTencent CloudのTRTCとIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期的にアクティブにすることができます。IMサービスの課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。TRTCをアクティブにすると、デフォルトでは、100DAUまでサポートするIM SDK体験版もアクティブになります。
TestLive
などのアプリケーション名を入力して、【作成】をクリックします。注意:本機能はTencent CloudのTRTCとIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期してアクティブにすることができます。IMは付加価値サービスであり、課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。
設定変更画面に進み、ダウンロードしたソースコードパッケージに基づき、対応する開発環境を選択します。
/example/lib/debug/GenerateTestUserSig.dart
ファイルを見つけて開きます。
GenerateTestUserSig.dart
ファイル内の関連パラメータを設定します。
貼り付け完了後、【貼り付けました。次へ】をクリックすれば、作成が完了します。
コンパイル完了後、【コンソールの概要ページに戻る】をクリックすればOKです。
注意:
- ここで言及したUserSigの新規作成ソリューションでは、クライアントコードでSECRETKEYを設定します。この手法のうちSECRETKEYは逆コンパイルによって逆向きにクラッキングされやすく、キーがいったん漏洩すると、攻撃者はTencent Cloudトラフィックを盗用できるようになります。そのためこの手法は、ローカルのDemoクイックスタートおよび機能デバッグにのみ適合します。
- UserSigの正しい発行方法は、UserSigの計算コードをサーバーに統合し、App向けのインターフェースを提供します。UserSigが必要なときは、Appから業務サーバーにリクエストを発出し動的にUserSigを取得します。詳細はサーバーでUserSigを生成するをご参照ください。
注意:Android端末は実際のマシンで実行する必要があり、エミュレーターのデバッグはサポートされていません。
flutter pub get
を実行します。flutter run
を実行します。ソースコードのTRTCLiveRoomフォルダは、uiとmodelの2つのサブフォルダを含んでいます。uiフォルダにはインターフェースコードが含まれています。以下の表にはファイルまたはフォルダおよび対応するUIをリストアップして、二次調整を行いやすくしています:
ファイルまたはフォルダ | 機能の説明 |
---|---|
base | UIに使用される基礎となるクラス。 |
list | リストページおよびルームページの作成。 |
room | メインルームページは、キャスターと視聴者という2種類のインターフェースがあります。 |
ソースコードフォルダTRTCLiveRoom
にはuiとmodelの2つのサブフォルダが含まれ、そのうちmodelフォルダには再利用可能なオープンソースコンポーネントTRTCLiveRoomが含まれています。このコンポーネントが提供するインターフェース関数はTRTCLiveRoom.dart
ファイルで確認でき、対応するインターフェースを使用してカスタマイズUIを実装することができます。
インタラクティブライブストリーミングコンポーネントTRTCLiveRoomは、TRTC SDKとIM SDKに依存しています。pubspec.yaml
を設定することで、自動的にダウンロードして更新できます。
プロジェクトのpubspec.yaml
に次の依存関係を記述します:
dependencies:
tencent_trtc_cloud: 最新バージョン番号
tencent_im_sdk_plugin: 最新バージョン番号
Info.plist
にカメラとマイクの権限申請を追加してください:
<key>NSMicrophoneUsageDescription</key>
<string>通常の音声通話が行えるようにマイクの権限を承認します</string>
次のディレクトリ内のすべてのファイルをプロジェクトにコピーします:
lib/TRTCLiveRoom/model/
sharedInstance
インターフェースを呼び出すと、TRTCLiveRoomコンポーネントのインスタンスオブジェクトを作成できます。registerListener
関数を呼び出して、コンポーネントのイベント通知を登録します。login
関数を呼び出してコンポーネントのログインを完了します。下表を参考にキーパラメータを入力してください:パラメータ名 | 作用 |
---|---|
sdkAppId | TRTCコンソール で SDKAppIDを表示できます。 |
userId | 現在のユーザーID。文字列タイプであり、英語のアルファベット(a-z、A-Z)、数字(0-9)、ハイフン(-)とアンダーライン(_)のみ使用できます。業務の実際のアカウントシステムと組み合わせてご自身で設定することをお勧めします。 |
userSig | Tencent Cloudによって設計されたセキュリティ保護署名。取得方法については、UserSigの計算、使用方法をご参照ください。 |
useCDNFirst | 視聴者の視聴方式の設定に使用します。trueは一般視聴者のCDN経由での視聴を表し、料金は安価ですがレイテンシーは高めです。falseは一般視聴者の低レイテンシーによる視聴を表し、料金はCDN とマイク接続の間ですが、遅延を1s以内に抑えることができます。 |
CDNPlayDomain | useCDNFirstの設定をtrueにした時に有効になり、CDN経由の視聴の再生ドメイン名の指定に利用します。CSSコンソール >【ドメイン名管理】ページからログインし、設定することができます。 |
setSelfProfile
を呼び出して自身のニックネームおよびプロフィール画像を設定することができます。startCameraPreview
を呼び出してカメラのプレビューを起動させ、インターフェース上に美顔調節ボタンを設置して呼び出し、getBeautyManager
で美顔設定を行うことができます。
説明:エンタープライズ版以外のSDKは美顔やスタンプの機能をサポートしていません。
createRoom
を呼び出して新しいライブストリーミングルームを作成することができます。startPublish
を呼び出し、プッシュを開始します。CDN視聴のサポートが必要な場合は、login時に渡されるTRTCLiveRoomConfig
パラメータ内でuseCDNFirst
とCDNPlayDomain
を指定し、startPublish
時にライブストリーミング・プルストリーム用のstreamIDを指定してください。setSelfProfile
を呼び出して自身のニックネームおよびプロフィール画像を設定することができます。説明:Demo内のライブストリーミングルームリストはデモに使用するためだけのものです。ライブストリーミングルームリストの業務ロジックは千差万別です。現在、Tencent Cloudはライブストリーミングルームリスト管理のサービスを提供していません。各自でご自分のライブストリーミングルームリストを管理してください。
getRoomInfos
を呼び出してルームの詳細情報を取得します。この情報は、キャスター側がcreateRoom
を呼び出してライブストリーミングルームを作成するときに設定する簡単な説明情報です。
注意:ライブストリーミングルームのリストに十分に包括的な情報がある場合は、
getRoomInfos
の呼び出しに関する手順をスキップできます。
enterRoom
を呼び出してルームナンバーを渡すと、そのルームに参加できます。startPlay
を呼び出してキャスターのuserIdを渡し、再生を開始します。startPlay
を呼び出してキャスターのuserIdを渡せば、再生を開始できます。onAnchorEnter
のイベントコールバックを受信します。このコールバックの中にキャスターのuserID情報が含まれていますので、startPlay
を呼び出せば再生できます。 requestJoinAnchor
を呼び出し、キャスター側にマイク接続のリクエストを送信します。TRTCLiveRoomDelegate#onRequestJoinAnchor
(視聴者からのマイク接続のリクエストがあります)のイベント通知を受信します。responseJoinAnchor
を呼び出し、視聴者からのマイク接続リクエストを受け入れるかどうか決定できます。onAnchorAccepted
イベント通知を受信します。この通知にはキャスター側の処理結果が含まれています。startCameraPreview
を呼び出し、ローカルカメラを起動させます。その後startPublish
を呼び出し、視聴者側のプッシュを開始します。TRTCLiveRoomDelegate#onAnchorEnter
(別のオーディオ・ビデオストリーミングが届いています)の通知を受信します。この通知には視聴者側のuserIdが含まれています。startPlay
を呼び出すと、マイク接続の視聴者の画面を見ることができます。requestRoomPK
を呼び出し、キャスターBにPKのリクエストを送信します。TRTCLiveRoomDelegate onRequestRoomPK
のコールバック通知を受信します。responseRoomPK
を呼び出し、キャスターA のPKのリクエストを受け入れるかどうかが決定します。TRTCLiveRoomDelegate onAnchorEnter
の通知を待ってから、startPlay
を呼び出し、キャスターAを表示します。onRoomPKAccepted
のコールバック通知を受信します。TRTCLiveRoomDelegate onAnchorEnter
の通知を待ってから、startPlay
を呼び出し、キャスターBを表示します 。sendRoomTextMsg
によって通常のテキストメッセージを送信できるようになり、該当するルーム内の全てのキャスターおよび視聴者がonRecvRoomTextMsg
のコールバックを受信することができます。// 発信側:テキストメッセージの発信
trtcLiveCloud.sendRoomTextMsg("Hello Word!");
// 受信側:テキストメッセージのモニタリング
onListenerFunc(type, params) async {
switch (type) {
case TRTCLiveRoomDelegate.onRecvRoomTextMsg:
//グループテキストメッセージを受信すると、テキストチャットルームを使用できます
break;
}
}
sendRoomCustomMsg
によって、カスタム(シグナル)メッセージを送信できます。当該ルーム内のすべてのキャスターと視聴者がonRecvRoomCustomMsg
コールバックを受信できます。
この記事はお役に立ちましたか?