Plugin WebRTC untuk Flutter Mobile/Desktop/Web
Disponsori dengan? oleh
API kelas perusahaan untuk umpan, obrolan, & video. Coba tutorial video flutter
LiveKit - Infrastruktur WebRTC open source
| Fitur | Android | iOS | Web | MacOS | Windows | Linux | Tertanam | Fuchsia |
|---|---|---|---|---|---|---|---|---|
| Audio/Video | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Saluran data | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Tangkapan layar | ✔️ | ✔️ (*) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Plan-Plan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Simulcast | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Mediiarecorder | ✔️ | |||||||
| Enkripsi ujung ke ujung | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Aliran yang dapat dimasukkan |
Dukungan platform/OS tambahan dari komunitas lain
Tambahkan flutter_webrtc sebagai ketergantungan dalam file pubspec.yaml Anda.
Tambahkan entri berikut ke File Info.plist Anda, terletak di <project root>/ios/Runner/Info.plist :
< key >NSCameraUsageDescription</ key >
< string >$(PRODUCT_NAME) Camera Usage!</ string >
< key >NSMicrophoneUsageDescription</ key >
< string >$(PRODUCT_NAME) Microphone Usage!</ string >Entri ini memungkinkan aplikasi Anda untuk mengakses kamera dan mikrofon.
WebRTC.XFRAMEWork yang dikompilasi setelah rilis M104 tidak lagi mendukung perangkat lengan iOS, jadi perlu menambahkan config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' ke iOS/podfile Anda di proyek Anda
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 Pastikan izin berikut hadir dalam file manifes Android Anda, yang terletak di <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 " />Jika Anda perlu menggunakan perangkat Bluetooth, silakan tambahkan:
< uses-permission android : name = " android.permission.BLUETOOTH " android : maxSdkVersion = " 30 " />
< uses-permission android : name = " android.permission.BLUETOOTH_ADMIN " android : maxSdkVersion = " 30 " />Template Proyek Flutter menambahkannya, jadi mungkin sudah ada di sana.
Anda juga perlu mengatur pengaturan build Anda ke Java 8, karena JAR WebRTC resmi sekarang menggunakan metode statis dalam antarmuka EglBase . Cukup tambahkan ini ke level aplikasi Anda build.gradle :
android {
// ...
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
} Jika perlu, dalam build.gradle yang sama Anda perlu meningkatkan minSdkVersion defaultConfig hingga 23 (saat ini generator flutter default mengaturnya menjadi 16 ).
Saat Anda mengkompilasi APK rilis, Anda perlu menambahkan operasi berikut, atur aturan proguard
Proyek ini tidak dapat dipisahkan dari kontributor masyarakat.
Untuk contoh lebih lanjut, silakan merujuk ke Flutter-WebRTC-Demo.
Proyek ini ada berkat semua orang yang berkontribusi. [Menyumbang].
Menjadi kontributor keuangan dan bantu kami mempertahankan komunitas kami. [Menyumbang]
Dukung proyek ini dengan organisasi Anda. Logo Anda akan muncul di sini dengan tautan ke situs web Anda. [Menyumbang]