Плагин WEBRTC для Flutter Mobile/Desktop/Web
Спонсором? к
APIS Enterprise Grade для каналов, чата и видео. Попробуйте видео -уроки Flutter
LiveKit - инфраструктура WEBRTC с открытым исходным кодом
| Особенность | Android | ios | Веб - | macOS | Окна | Linux | Встроенный | Фуксия |
|---|---|---|---|---|---|---|---|---|
| Аудио/видео | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Канал данных | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Экранный захват | ✔ | ✔ (*) | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Унифицированный план | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Одновременно | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Медиарекатор | ✔ | |||||||
| Конечное шифрование | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Вставленные потоки |
Дополнительная поддержка платформы/ОС от другого сообщества
Добавьте flutter_webrtc в качестве зависимости в вашем файле pubspec.yaml.
Добавьте следующую запись в свой файл info.plist , расположенный в <project root>/ios/Runner/Info.plist :
< key >NSCameraUsageDescription</ key >
< string >$(PRODUCT_NAME) Camera Usage!</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >$(PRODUCT_NAME) Microphone Usage!</ string >Эта запись позволяет вашему приложению получить доступ к камере и микрофону.
Webrtc.xframework, скомпилированный после того, как выпуск M104 больше не поддерживает устройства ARM iOS, поэтому необходимо добавить config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' в ваш iOS/Podfile в ваш проект
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 Убедитесь, что в вашем файле Android Manifest присутствует следующее разрешение, расположенное в <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 " />Если вам нужно использовать устройство Bluetooth, добавьте:
< uses-permission android : name = " android.permission.BLUETOOTH " android : maxSdkVersion = " 30 " />
< uses-permission android : name = " android.permission.BLUETOOTH_ADMIN " android : maxSdkVersion = " 30 " />Шаблон проекта Flutter добавляет его, так что он может быть уже там.
Кроме того, вам нужно будет установить настройки сборки на Java 8, потому что официальный JAR теперь использует статические методы в интерфейсе EglBase . Просто добавьте это в ваш уровень приложения build.gradle :
android {
// ...
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
} При необходимости, в той же build.gradle Вам нужно будет увеличить minSdkVersion of defaultConfig до 23 (в настоящее время генератор разрыва по умолчанию установит его на 16 ).
При составлении выпуска APK вам необходимо добавить следующие операции, настроить правила прогноза
Проект неотделим от участников сообщества.
Для получения дополнительных примеров, пожалуйста, обратитесь к Flutter-Webrtc-Demo.
Этот проект существует благодаря всем людям, которые вносят свой вклад. [Способствовать].
Станьте финансовым участником и помогите нам поддерживать наше сообщество. [Способствовать]
Поддержите этот проект вашей организацией. Ваш логотип будет отображаться здесь со ссылкой на ваш сайт. [Способствовать]