Kotlin
許可を求める
私たちのアプリは、ユーザーのデバイスからオーディオとビデオを使用するため、オーディオとビデオの許可を要求するコードを追加する必要があります。このプロセスを簡単にするために、am accompanistを使用します。
- にアクセス許可を追加する。
AndroidManifest.xml
内部 AndroidManifest.xml以下を追加する。 内 <manifest> タグ:
ℹ️ 注: について WAKE_LOCK パーミッションは、ビデオ通話中にデバイスがスリープしないようにするために使用されます。これにより、中断のないメディアストリーミングが保証されます。
- 依存関係とマニフェストのパーミッションを追加する
まず Accompanist に依存している。 build.gradle ファイル:
dependencies {
implementation("com.google.accompanist:accompanist-permissions:0.34.0")
}
- 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()
}
}
}
}
- 更新
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
}
}
- 次のステップ
パーミッションが付与されると 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
結論