Kotlin

Beantragung von Genehmigungen

Da unsere App Audio- und Videodaten vom Gerät des Nutzers verwendet, müssen wir etwas Code hinzufügen, um Audio- und Videoberechtigungen anzufordern. Wir verwenden Accompagnist, um den Prozess zu vereinfachen.

  1. Berechtigungen hinzufügen zu AndroidManifest.xml

Im Inneren Ihres AndroidManifest.xmlfügen Sie Folgendes hinzu innerhalb der <manifest> Tag:

ℹ️ Anmerkung: Die WAKE_LOCK wird verwendet, damit das Gerät während eines Videoanrufs nicht schläft. Dies gewährleistet eine ununterbrochene Medienübertragung.

  1. Hinzufügen von Abhängigkeiten und Manifestberechtigungen

Fügen Sie zunächst die Accompanist Abhängigkeit zu Ihrer build.gradle Datei:

dependencies {
   implementation("com.google.accompanist:accompanist-permissions:0.34.0")
}
  1. Implementierung der Rechteverwaltung in compose

Mit Accompanistverwenden wir rememberMultiplePermissionsState. Dadurch kann die Benutzeroberfläche automatisch reagieren, wenn Berechtigungen gewährt oder verweigert werden. Eine neue Datei erstellen VideoChatPermissionWrapper.kt wie folgt:

@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. Update MainActivity.kt & definieren die initializeSession() Methode als Platzhalter für die Einrichtung Ihres Videoanrufs"

Integrieren Sie dies nun in Ihre MainActivity. Rufen Sie einfach Ihre VideoChatPermissionWrapper innerhalb von 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. Nächste Schritte

Sobald die Genehmigungen erteilt sind, wird die initializeSession() Funktion ausgelöst werden. In den nächsten Schritten des Tutorials werden Sie die Logik implementieren, um eine Verbindung zu einer Vonage Video API-Sitzung herzustellen.

Benutzerdefinierter Audiotreiber

Hier erfahren Sie, wie Sie einen benutzerdefinierten Audiotreiber verwenden, um den Audio-Stream des Herausgebers und der Teilnehmer anzupassen. Sie werden den benutzerdefinierten Audiotreiber verwenden, wenn Sie die Audio-Wiedergabe Ihrer eigenen Audiodatei starten und stoppen und alles tun möchten, was über das Standardverhalten des vom SDK bereitgestellten Live-Video-Chats hinausgeht.

Verfügbar am:
Kotlin Swift
Schritte
1
Einführung
2
Erste Schritte
3
Ein neues Projekt erstellen
4
Hinzufügen des Android-SDK
5
Einrichten der Authentifizierung
6
Beantragung von Genehmigungen
7
Hinzufügen eines benutzerdefinierten Audiotreibers
8
Aufzeichnung von Audiodaten zur Verwendung durch einen Verlag
9
Hinzufügen eines benutzerdefinierten Audio-Renderers
10
Ausführen der App
11
Schlussfolgerung