Guida introduttiva all'SDK di trasmissione IVS su Android | Streaming in tempo reale
Questo documento illustra i passaggi necessari per iniziare a utilizzare l'SDK di trasmissione IVS per lo streaming in tempo reale su Android.
Installare la libreria
Esistono diversi modi per aggiungere la libreria di trasmissione Amazon IVS per Android al proprio ambiente di sviluppo Android: è possibile utilizzare direttamente Gradle o i cataloghi delle versioni Gradle oppure installare l'SDK manualmente.
Utilizzo diretto di Gradle: aggiungi la libreria al file build.gradle
del modulo, come mostrato qui (per l'ultima versione dell'SDK di trasmissione IVS):
repositories { mavenCentral() } dependencies { implementation 'com.amazonaws:ivs-broadcast:1.27.0:stages@aar' }
Utilizzo dei cataloghi delle versioni Gradle: per prima cosa, includi quanto segue nel file build.gradle
del modulo:
implementation(libs.ivs){ artifact { classifier = "stages" type = "aar" } }
Quindi includi quanto segue nel file libs.version.toml
(per l'ultima versione dell'SDK di trasmissione IVS):
[versions] ivs="1.27.0" [libraries] ivs = {module = "com.amazonaws:ivs-broadcast", version.ref = "ivs"}
Installazione manuale dell'SDK: scarica la versione più recente da questo percorso:
https://search.maven.org/artifact/com.amazonaws/ivs-broadcast
Assicurati di scaricare aar
con -stages
aggiunto.
Consenti all'SDK di controllare anche il vivavoce: a prescindere dal metodo di installazione scelto, aggiungi la seguente autorizzazione al tuo manifesto per consentire all'SDK di abilitare e disabilitare il vivavoce:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Utilizzo dell'SDK con i simboli di debug
Pubblichiamo anche una versione dell'SDK di trasmissione per Android che include i simboli di debug. È possibile utilizzare questa versione per migliorare la qualità dei report di debug (tracce dello stack) in Firebase Crashlytics se si verificano arresti anomali nell'SDK di trasmissione IVS, ad esempio libbroadcastcore.so
. Quando segnali questi arresti anomali al team dell'SDK di IVS, le tracce dello stack di qualità superiore facilitano la risoluzione dei problemi.
Per utilizzare questa versione dell'SDK, inserisci quanto segue nei tuoi file di build di Gradle:
implementation "com.amazonaws:ivs-broadcast:$version:stages-unstripped@aar"
Utilizza la riga precedente invece di questa:
implementation "com.amazonaws:ivs-broadcast:$version:stages@aar"
Caricamento dei simboli in Firebase Crashlytics
Assicurati che i tuoi file di build Gradle siano configurati per Firebase Crashlytics. Segui le istruzioni di Google qui:
https://firebase.google.com/docs/crashlytics/ndk-reports
Assicurati di includere com.google.firebase:firebase-crashlytics-ndk
come dipendenza.
Quando crei l'app per il rilascio, il plug-in Firebase Crashlytics dovrebbe caricare i simboli automaticamente. Per caricare i simboli manualmente, esegui uno dei comandi seguenti:
gradle uploadCrashlyticsSymbolFileRelease
./gradlew uploadCrashlyticsSymbolFileRelease
Non è un problema se i simboli vengono caricati due volte, automaticamente e manualmente.
Impedire che .apk Release diventi più grande
Prima di impacchettare il file .apk
di rilascio, il plug-in Android Gradle tenta automaticamente di rimuovere le informazioni di debug dalle librerie condivise (inclusa la libreria libbroadcastcore.so
dell'SDK di trasmissione IVS). Tuttavia, a volte ciò non accade. Di conseguenza, il file .apk
potrebbe diventare più grande e si potrebbe ricevere un messaggio di avviso dal plug-in Android Gradle che indica che non è in grado di rimuovere i simboli di debug e sta impacchettando i file .so
così come sono. In tal caso, segui questa procedura:
-
Installa un NDK per Android. Va bene qualsiasi versione recente.
-
Aggiungi
ndkVersion <your_installed_ndk_version_number>
al filebuild.gradle
dell'applicazione. Fallo anche se l'applicazione non contiene codice nativo.
Per ulteriori informazioni, consulta questo report sul problema
Richiedere autorizzazioni
L'app deve richiedere l'autorizzazione per accedere alla fotocamera e al microfono dell'utente. (Questo non riguarda solo Amazon IVS, ma qualsiasi applicazione che abbia bisogno di accedere alle fotocamere e ai microfoni.)
Qui, controlliamo se l'utente ha già concesso le autorizzazioni e, in caso contrario, le chiediamo:
final String[] requiredPermissions = { Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO }; for (String permission : requiredPermissions) { if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { // If any permissions are missing we want to just request them all. ActivityCompat.requestPermissions(this, requiredPermissions, 0x100); break; } }
Qui, otteniamo la risposta dell'utente:
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 0x100) { for (int result : grantResults) { if (result == PackageManager.PERMISSION_DENIED) { return; } } setupBroadcastSession(); } }