Plug -in webrtc para flutter móvel/desktop/web
Patrocinado com? por
APIs de nível corporativo para feeds, bate -papo e vídeo. Experimente o tutorial em vídeo da Flutter
LiveKit - Infraestrutura WebRTC de código aberto
| Recurso | Android | iOS | Web | macos | Windows | Linux | Integrado | Fúcsia |
|---|---|---|---|---|---|---|---|---|
| Áudio/vídeo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Canal de dados | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Captura de tela | ✔️ | ✔️ (*) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Plano unificado | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Simulcast | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Mediarecorder | ✔️ | |||||||
| Criptografia de ponta a ponta | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Fluxos inseráveis |
Suporte adicional de plataforma/sistema operacional da outra comunidade
Adicione flutter_webrtc como uma dependência no seu arquivo pubSpec.yaml.
Adicione a seguinte entrada ao seu arquivo info.plist , localizado em <project root>/ios/Runner/Info.plist :
< key >NSCameraUsageDescription</ key >
< string >$(PRODUCT_NAME) Camera Usage!</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >$(PRODUCT_NAME) Microphone Usage!</ string >Esta entrada permite que seu aplicativo acesse a câmera e o microfone.
O webrtc.xframework compilado após a liberação do M104 não suporta mais dispositivos de braço iOS; portanto, é necessário adicionar o config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' ao seu iOS/podfile em seu projeto
iOS/podfile
post_install do | installer |
installer . pods_project . targets . each do | target |
flutter_additional_ios_build_settings ( target )
target . build_configurations . each do | config |
# Workaround for https://github.com/flutter/flutter/issues/64502
config . build_settings [ 'ONLY_ACTIVE_ARCH' ] = 'YES' # <= this line
end
end
end Verifique se a permissão a seguir está presente no seu arquivo de manifesto do Android, localizado em <project root>/android/app/src/main/AndroidManifest.xml :
< uses-feature android : name = " android.hardware.camera " />
< uses-feature android : name = " android.hardware.camera.autofocus " />
< uses-permission android : name = " android.permission.CAMERA " />
< uses-permission android : name = " android.permission.RECORD_AUDIO " />
< uses-permission android : name = " android.permission.ACCESS_NETWORK_STATE " />
< uses-permission android : name = " android.permission.CHANGE_NETWORK_STATE " />
< uses-permission android : name = " android.permission.MODIFY_AUDIO_SETTINGS " />Se você precisar usar um dispositivo Bluetooth, adicione:
< uses-permission android : name = " android.permission.BLUETOOTH " android : maxSdkVersion = " 30 " />
< uses-permission android : name = " android.permission.BLUETOOTH_ADMIN " android : maxSdkVersion = " 30 " />O modelo de projeto Flutter o adiciona, para que ele já esteja lá.
Além disso, você precisará definir suas configurações de compilação para Java 8, porque o WeBrTC JAR oficial agora usa métodos estáticos na interface EglBase . Basta adicionar isso ao seu nível de aplicativo build.gradle :
android {
// ...
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
} Se necessário, na mesma build.gradle você precisará aumentar minSdkVersion do defaultConfig até 23 (atualmente o gerador de vibração padrão o define como 16 ).
Quando você compila o APK de liberação, você precisa adicionar as seguintes operações, configurar regras de proguard
O projeto é inseparável dos colaboradores da comunidade.
Para mais exemplos, consulte o Flutter-WebRTC-Demo.
Este projeto existe graças a todas as pessoas que contribuem. [Contribuir].
Torne -se um colaborador financeiro e ajude -nos a sustentar nossa comunidade. [Contribuir]
Apoie este projeto com sua organização. Seu logotipo aparecerá aqui com um link para o seu site. [Contribuir]