Complemento WEBRTC para Flutter Mobile/Desktop/Web
Patrocinado con? por
API de grado empresarial para feeds, chat y video. Prueba el video tutorial de Flutter
LiveKit - Infraestructura de código abierto WEBRTC
| Característica | Androide | iOS | Web | macosa | Windows | Linux | Incorporado | Fucsia |
|---|---|---|---|---|---|---|---|---|
| Audio/video | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Canal de datos | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Captura de pantalla | ✔️ | ✔️ (*) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Plan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Transmisión simultánea | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Mediarecorder | ✔️ | |||||||
| Cifrado de extremo a extremo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Transmisiones insertables |
Soporte adicional de plataforma/sistema operativo de la otra comunidad
Agregue flutter_webrtc como dependencia en su archivo pubspec.yaml.
Agregue la siguiente entrada a su archivo Info.plist , ubicado en <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 su aplicación acceda a la cámara y al micrófono.
El webrtc.xframework compilado después de la versión M104 ya no admite dispositivos ARM iOS, por lo que debe agregar la config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
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 Asegúrese de que el siguiente permiso esté presente en su archivo Manifest de Android, ubicado en <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 " />Si necesita usar un dispositivo Bluetooth, agregue:
< uses-permission android : name = " android.permission.BLUETOOTH " android : maxSdkVersion = " 30 " />
< uses-permission android : name = " android.permission.BLUETOOTH_ADMIN " android : maxSdkVersion = " 30 " />La plantilla del proyecto Flutter lo agrega, por lo que es posible que ya esté allí.
También deberá establecer su configuración de compilación en Java 8, porque el jar oficial WebRTC ahora utiliza métodos estáticos en la interfaz EglBase . Simplemente agregue esto a su nivel build.gradle .
android {
// ...
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
} minSdkVersion es necesario, defaultConfig la 23 build.gradle 16
Cuando compila la versión APK, debe agregar las siguientes operaciones, configurar las reglas de proguard
El proyecto es inseparable de los contribuyentes de la comunidad.
Para obtener más ejemplos, consulte Flutter-Webrtc-Demo.
Este proyecto existe gracias a todas las personas que contribuyen. [Contribuir].
Conviértete en un contribuyente financiero y ayúdanos a mantener nuestra comunidad. [Contribuir]
Apoye este proyecto con su organización. Su logotipo aparecerá aquí con un enlace a su sitio web. [Contribuir]