SDK do Android para a Video API da Vonage
O SDK do Android para a Video API da Vonage permite que você utilize sessões de vídeo baseadas na Video API da Vonage nos aplicativos que você desenvolve para dispositivos Android.
- Visão geral do SDK
- Referência da API
- Baixar
- Tutoriais
- Amostras
- Notas de lançamento
Todos os aplicativos que utilizam a Video API da Vonage são compostos por duas partes:
- O lado do cliente, que utiliza o SDKs do cliente OpenTok e é executado no navegador ou no aplicativo móvel do usuário
- O lado do servidor, que utiliza o SDKs de servidor do OpenTok e é executado no seu servidor para transmitir as informações de autenticação ao cliente.
O Client SDK para o desenvolvimento de aplicativos Android é o OpenTok Android SDK, que oferece a maior parte das funcionalidades essenciais para o seu aplicativo, incluindo:
- Conectando-se a uma sessão do OpenTok
- Publicação de fluxos em uma sessão
- Inscrição em streams durante uma sessão
Os SDKs de cliente também estão disponíveis para web, iOS, Windows, macOS, Linux e React. Todos os SDKs de cliente da OpenTok podem interagir entre si.
Você pode saber mais sobre os conceitos básicos dos clientes, servidores e sessões do OpenTok, entre outros assuntos, na Noções básicas sobre a Video API página.
Observações importantes
-
O Android SDK 2.35.1+ é compatível com o Android 17 (nível de API 37). Não são necessárias novas permissões para esta atualização.
-
O SDK do Android 2.30.0+ é compatível com dispositivos com tamanho de página de 4 KB e 16 KB.
-
O Android SDK 2.29.1+ requer o
ACCESS_NETWORK_STATEpermissão e, no Android com nível de API 35 ou superior, também requer aREQUEST_IGNORE_BATTERY_OPTIMIZATIONSautorização. Confira a lista completa de permissões necessárias. -
O SDK do Android 2.28.0+ requer um nível mínimo de API do Android 24.
-
O SDK do Android 2.24.3+, 2.25.4+ e 2.26.0+ exige um nível mínimo de API do Android 23.
-
O SDK do Android 2.24.0 e versões posteriores não oferecem mais suporte às arquiteturas x86 de 32 bits.
-
Applications destinados ao nível de API 31 e superior agora exigem permissão
READ_PHONE_STATE. Confira a lista completa de permissões necessárias.
Interoperabilidade
Os aplicativos desenvolvidos com o SDK do OpenTok para Android 2.35.1 podem interoperar com aplicativos do OpenTok desenvolvidos com a versão 2.33 ou superior dos Client SDKs do OpenTok:
- OpenTok.js
- SDK do OpenTok para Android
- SDK do OpenTok para iOS
- SDK do OpenTok para Windows
- SDK do OpenTok para macOS
- SDK do OpenTok para Linux
- SDK do OpenTok para React Native
Instalação
Uma versão do Maven está disponível em https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk.
O ID do artefato é "opentok-android-sdk". Modifique seu aplicativo para baixar o SDK do OpenTok para Android a partir de https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. Por exemplo:
-
Edite o arquivo build.gradle do seu projeto e adicione o seguinte trecho de código ao
allprojects/repositoriesseção:CopiarmavenCentral() -
Modifique o arquivo build.gradle do aplicativo e adicione o seguinte trecho de código ao
dependenciesseção:Copiarimplementation 'com.opentok.android:opentok-android-sdk:2.35.1' -
Modifique o arquivo build.gradle do aplicativo e adicione o seguinte trecho de código ao
androidseção:Para o SDK do Android superior à versão 2.28.1:
CopiarcompileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 }Para o SDK do Android entre as versões 2.22.0 e 2.28.1:
CopiarcompileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 }Para o SDK do Android com versão inferior a 2.22.0:
CopiarcompileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
Seu aplicativo precisa usar um ID de sessão e um token gerados com sua chave da API do OpenTok, que você pode obter fazendo login na sua Account da Video API da Vonage.
Para fins de teste, você pode gerar um ID de sessão e um token fazendo login na sua Account da Video API da Vonage. Para um aplicativo em produção, gere tokens exclusivos (e IDs de sessão, caso seja necessário oferecer suporte a várias sessões) usando o Bibliotecas do OpenTok para o lado do servidor.
Requisitos do sistema
Para garantir uma transmissão de vídeo confiável, verifique se o seu dispositivo Android atende às seguintes especificações recomendadas:
- CPU: Um processador dual-core recente; ARM64 (ARMv8) quad-core ou superior, com frequência de 2,0 GHz ou mais (por exemplo, série Qualcomm Snapdragon 600+, série Samsung Exynos 7 ou superior, Google Tensor (dispositivos Pixel)).
- GPU: Série Adreno 500+ (Qualcomm), Mali-G71+ (ARM); para codificação/decodificação de vídeo com aceleração por hardware.
- RAM: Pelo menos 6 GB de RAM para chamadas em grupo e multitarefa.
- Tela: 5"+ para uma melhor experiência do usuário.
- Capacidade da bateria: mais de 3.000 mAh para videochamadas prolongadas.
- Rede: Conectividade confiável à internet; funciona por Wi-Fi ou rede móvel.
Essas recomendações garantem uma reprodução estável, menor uso da CPU e um desempenho fluido durante a transmissão de vídeo.
Exemplos de aparelhos por categoria: Samsung Galaxy A12, Moto G Play e Nokia G10 são da categoria básica; Google Pixel 6a, Samsung Galaxy A52/A53 e OnePlus Nord são de gama média; e Samsung Galaxy S23/S24, Google Pixel 8 Pro e OnePlus 11 são de gama alta.
Aprendendo a Construir
A melhor maneira de aprender a usar o SDK do OpenTok para Android é seguir o OpenTok Tutorial básico sobre bate-papo por vídeo.
Depois de compreender os conceitos básicos do desenvolvimento com o SDK do OpenTok para Android, você poderá obter informações mais detalhadas e aprender a personalizar seu aplicativo com o OpenTok guias para desenvolvedores. Para conhecer mais sobre classes e métodos específicos da API, consulte o Referência da API do SDK do OpenTok para Android.
Requisitos do desenvolvedor e do cliente
O SDK do OpenTok para Android suporta um fluxo de áudio e vídeo publicado, um fluxo de áudio e vídeo assinado e até cinco fluxos adicionais apenas de áudio assinados simultaneamente. Para conectar mais de dois clientes em uma sessão usando o SDK do OpenTok para Android, crie uma sessão que utilize o OpenTok Media Router (uma sessão com o modo de mídia definido como “routed”). Consulte O OpenTok Media Router e os modos de mídia.
O SDK é compatível com redes Wi-Fi de alta velocidade e 4G LTE.
O SDK do OpenTok para Android é compatível com as arquiteturas armeabi-v7a, arm64-v8a e x86_64.
A partir da versão 2.30.0, o SDK oferece suporte a dispositivos com tamanho de página de 4 KB e 16 KB. Isso garante o funcionamento, aumenta a compatibilidade e evita falhas no sistema. Para obter mais informações, consulte esta documentação do Android sobre tamanhos de página.
O SDK do OpenTok para Android é compatível com qualquer dispositivo Android 7.0 ou superior (Nougat, Nível de API 24) que possua uma câmera (para transmissão de vídeo) e recursos adequados de CPU e memória.
Permissões
O SDK do OpenTok para Android utiliza as seguintes permissões:
-
android.permission.ACCESS_NETWORK_STATE-- O SDK do OpenTok para Android exige essa permissão a partir da versão 2.29.1. -
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS-- O SDK do OpenTok para Android exige essa permissão a partir da versão 2.29.1, no nível de API 35 e superior. -
android.permission.BLUETOOTH_CONNECT-- É necessário habilitar isso para o nível de API 31 e superior. Se você quiser usar o dispositivo Bluetooth com o DefaultAudioDevice do Android SDK voltado para o nível de API 31 e superior, solicite permissões em tempo de execução no aplicativo ou habilite manualmente a permissão (“Dispositivos próximos/Bluetooth”) nas configurações do aplicativo. -
android.permission.READ_PHONE_STATE-- O SDK do OpenTok para Android solicita essa permissão no nível de API 22 e inferiores, e no nível de API 31 e superiores. -
android.permission.CAMERA-- Se o seu aplicativo não usar o capturador de vídeo padrão e não acessar a câmera, você pode remover essa permissão. -
android.permission.INTERNET-- Obrigatório. -
android.permission.RECORD_AUDIO-- Se seu aplicativo não usar o dispositivo de áudio padrão e não acessar o microfone, você pode remover essa permissão. -
android.permission.MODIFY_AUDIO_SETTINGS-- Se seu aplicativo não usar o dispositivo de áudio padrão e não acessar o microfone, você pode remover essa permissão. -
android.permission.BLUETOOTH-- O dispositivo de áudio padrão é compatível com áudio via Bluetooth. Se o seu aplicativo não utilizar o dispositivo de áudio padrão nem o Bluetooth, você pode remover essa permissão. -
android.permission.BROADCAST_STICKY-- Constatamos que essa permissão não é utilizada pelo SDK do OpenTok para Android e iremos removê-la em uma versão futura. -
android.permission.ACCESS_LOCAL_NETWORK-- Não é necessário. O Android 17 (API 37) introduziu essa permissão para restringir o acesso às APIs de descoberta de rede local de alto nível. O SDK do Vonage Video para Android utiliza soquetes UDP/TCP brutos para a negociação ICE do WebRTC, os quais não estão sujeitos a essa permissão. As conexões P2P e os candidatos a ICE na rede local funcionam corretamente no Android 17 sem essa permissão.
Você não precisa adicioná-las ao manifesto do seu aplicativo. O SDK do OpenTok para Android as adiciona automaticamente. No entanto, no nível de API 21 e superior, certas permissões exigem que você solicite a autorização do usuário.
Seu aplicativo pode remover qualquer uma dessas permissões que não seja necessária. Consulte esta postagem e esta documentação do Android. Por exemplo, isso remove o android.permission.CAMERA permissão:
<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>
Regras do ProGuard
A configuração recomendada do ProGuard é:
-keeppackagenames
-keep class com.opentok.** { *; }
-keep class com.vonage.** { *; }
Ao usar o Android Studio 3.4 ou o plug-in do Android Gradle 3.4.0 ou superior, a compactação, a ofuscação e a otimização são, por padrão, ativadas automaticamente.
Não é recomendável compactar e ofuscar o SDK do OpenTok para Android.
A configuração acima faz com que o código-fonte do SDK do OpenTok para Android seja mantido, sem impedir que o restante do aplicativo seja compactado.
Mantenha os nomes dos pacotes do SDK do OpenTok para Android usando o sinalizador -keeppackagenames para evitar conflitos com outras bibliotecas.
Por padrão, o compilador realiza automaticamente um conjunto de otimizações. Outras otimizações não são recomendadas, mas é possível habilitar otimizações adicionais — o que pode exigir a inclusão de regras adicionais do ProGuard para evitar problemas em tempo de execução — adicionando o seguinte ao arquivo gradle.properties do projeto:
android.enableR8.fullMode=true
Não é recomendável minificar o SDK do OpenTok para Android. A compactação e a ofuscação do SDK do OpenTok para Android com a otimização mencionada acima gerarão avisos. Esses avisos devem ser desativados.
# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
Veja esta documentação do Android para compreender melhor as regras gerais do ProGuard e suas funcionalidades.
Exemplos de código
Para ver exemplos de código, acesse nosso Repositório “vonage-video-android-sdk-samples” no GitHub.
Documentação e mais informações
Veja o Referência da API do SDK do OpenTok para Android e o Guias para desenvolvedores do OpenTok.
Para obter uma lista dos novos recursos e dos problemas conhecidos, consulte o notas de lançamento.