Kotlin

許可を求める

私たちのアプリは、ユーザーのデバイスからオーディオとビデオを使用するため、オーディオとビデオの許可を要求するコードを追加する必要があります。このプロセスを簡単にするために、am accompanistを使用します。

  1. にアクセス許可を追加する。 AndroidManifest.xml

内部 AndroidManifest.xml以下を追加する。 <manifest> タグ:

ℹ️ 注: について WAKE_LOCK パーミッションは、ビデオ通話中にデバイスがスリープしないようにするために使用されます。これにより、中断のないメディアストリーミングが保証されます。

  1. 依存関係とマニフェストのパーミッションを追加する

まず Accompanist に依存している。 build.gradle ファイル:

dependencies {
   implementation("com.google.accompanist:accompanist-permissions:0.34.0")
}
  1. composeでパーミッション処理を実装する

Accompanistを使用する。 rememberMultiplePermissionsState.これにより、パーミッションが許可または拒否されたときにUIが自動的に反応するようになります。新規ファイルの作成 VideoChatPermissionWrapper.kt 以下の通りである:

@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun VideoChatPermissionWrapper(
    onPermissionsGranted: () -> Unit,
    content: @Composable () -> Unit
) {
    val permissionsState = rememberMultiplePermissionsState(
        permissions = listOf(
            Manifest.permission.CAMERA,
            Manifest.permission.RECORD_AUDIO
        )
    )

    if (permissionsState.allPermissionsGranted) {
        // 1. Notify parent that permissions are ready (run once)
        LaunchedEffect(Unit) {
            onPermissionsGranted()
        }
        // 2. Show the actual video UI
        content()
    } else {
        // 3. Show a Rationale UI if permissions are missing
        Column(
            modifier = Modifier
                .fillMaxSize()
                .padding(16.dp),
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            Text(text = "Camera and Audio permissions are required for video chat.")

            Button(
                onClick = { permissionsState.launchMultiplePermissionRequest() },
                modifier = Modifier.padding(top = 16.dp)
            ) {
                Text("Grant Permissions")
            }
        }

        // Auto-launch the popup on the very first composition
        LaunchedEffect(Unit) {
            if (!permissionsState.allPermissionsGranted) {
                permissionsState.launchMultiplePermissionRequest()
            }
        }
    }
}
  1. 更新 MainActivity.kt を定義する。 initializeSession() メソッドをビデオ通話のセットアップのプレースホルダーとして使用する。

では、これをMainActivityに組み込みましょう。単に VideoChatPermissionWrapper setContentの内側。

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        enableEdgeToEdge()

        setContent {
            VideoChatPermissionWrapper(
                onPermissionsGranted = {
                    initializeSession(
                        appId = VonageVideoConfig.APP_ID,
                        sessionId = VonageVideoConfig.SESSION_ID,
                        token = VonageVideoConfig.TOKEN
                    )
                }
            ) {
                VideoChatScreen(
                    publisherView = publisherView,
                    subscriberView = subscriberView
                )
            }
        }
    }


    private fun initializeSession(appId: String, sessionId: String, token: String) {
        // TODO: Connect to Vonage session
    }
}
  1. 次のステップ

パーミッションが付与されると initializeSession() 関数がトリガされます。チュートリアルの次のステップでは、Vonage Video API セッションに接続するためのロジックを実装します。

基本的なビデオチャット

Vonage Video API プラットフォームの基本概念(ビデオ、音声、メッセージングによるユーザ間のコミュニケーション方法など)を学びます。Vonage Video API の基本的なフローを説明します。

手順
1
はじめに
2
はじめに
3
新規プロジェクトの作成
4
Android SDKの追加
5
認証の設定
6
許可を求める
7
セッションへの接続
8
サンプルアプリのUIを調整する
9
セッションへのストリームの公開
10
他のクライアント・ストリームへの加入
11
アプリの実行
12
結論