ボイスチャットルームを短時間で構築する方法
ここでは、Flutter でボイスチャットルームを短時間で完成させる方法を紹介します。下記のガイドに従えば、約10分ほどで UI を含む音声チャットルーム機能を実装することができます。
Step 1: サービスの有効化
Activate Service (TUILiveKit) を参照して、体験版の申請または有料版の有効化を行ってください。
Step 2: TUILiveKit コンポーネントのインポート
プロジェクトのルートディレクトリで以下のコマンドを実行し、コマンドラインから tencent_live_uikit プラグインをインストールします。
flutter pub add tencent_live_uikit
Step 3: プロジェクトの設定を完了する
-
Android プラットフォームでコンパイル・実行する場合、SDK 内で Java のリフレクション機能を使用しているため、SDK 内の一部クラスを難読化対象から除外する必要があります。
まず、android/app/build.gradle ファイル内で ProGuard を設定し、有効にしてください。
android { ...... buildTypes { release { ...... minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }次に、プロジェクトの android/app ディレクトリ直下に proguard-rules.pro ファイルを作成し、以下のコードを追加します。
-keep class com.tencent.** { *; } -
android/app/build.gradle ファイルで、Multidex を有効化する設定を行います。
android { ...... defaultConfig { ...... multiDexEnabled true } }
Step 4: ルーティングと多言語化の設定
アプリ内でルーティングやプロキシの設定を行います。以下は MaterialApp での設定例です。
import 'package:tencent_live_uikit/tencent_live_uikit.dart';
return MaterialApp(
navigatorObservers: [TUILiveKitNavigatorObserver.instance],
localizationsDelegates: [
...LiveKitLocalizations.localizationsDelegates,
...BarrageLocalizations.localizationsDelegates,
...GiftLocalizations.localizationsDelegates,
],
supportedLocales: [
...LiveKitLocalizations.supportedLocales,
...BarrageLocalizations.supportedLocales,
...GiftLocalizations.supportedLocales
],
//...
);
Step 5: ログイン
ボイスルーム機能を利用する前に、以下のログインコードを実行して、初期化が完了していることを確認してください。
import 'package:tencent_live_uikit/tencent_live_uikit.dart';
void login() async {
await TUILogin.instance.login(
1400000001, // Step 1 で取得した SDKAppID に置き換えてください
"denny", // ご自身の UserID を指定してください
"xxxxxxxxxxx", // コンソールで計算した UserSig を指定してください
TUICallback(
onError: (code, message) {
print("TUILogin login fail, {code:$code, message:$message}");
},
onSuccess: () async {
print("TUILogin login success");
},
),
);
}
Step 6: アンカー配信ページの組み込み
音声ルームを開始したい場所(ビジネスロジックで特定し、ボタンタップ等のイベントで実行)で、以下のように操作してアンカー配信ページへ遷移します。
import 'package:tencent_live_uikit/tencent_live_uikit.dart';
Navigator.push(context, MaterialPageRoute(
builder: (context) {
final String userId = 'replace with your userId';
final String roomId = LiveIdentityGenerator.instance.generateId(userId, RoomType.live);
return TUILiveRoomAnchorWidget(roomId: roomId);
}));
Step 7: ライブリストページの組み込み
ライブリストページには、ボイスチャットのライブルームが表示されます。任意のルームをクリックして、視聴者として参加したり、マイク連動できるようになります。
以下の操作を行い、ライブリストページに遷移してみましょう。
import 'package:tencent_live_uikit/tencent_live_uikit.dart';
Navigator.push(context, MaterialPageRoute(
builder: (context) {
return Scaffold(
body: SafeArea(child: LiveListWidget()));
}));
または、特定のページの一部としてライブリストを埋め込むことも可能です。
import 'package:tencent_live_uikit/tencent_live_uikit.dart';
// 単一のウィジェットの場合(例:Container など)
Container(
child: LiveListWidget()
)
// 複数ウィジェットの場合(例:Column など)
Column(
children:[LiveListWidget()]
)
Discussion