WEBRTC Plugin لـ Flutter Mobile/Desktop/Web
برعاية؟ بواسطة
واجهات برمجة تطبيقات الصف المؤسسي للأعلاف والدردشة والفيديو. جرب تعليمي فيديو رفرفة
LiveKit - البنية التحتية مفتوحة المصدر Webrtc
| ميزة | Android | iOS | الويب | ماكوس | النوافذ | Linux | مغروس | ضارب الى الحمرة |
|---|---|---|---|---|---|---|---|---|
| الصوت/الفيديو | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| قناة البيانات | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| التقاط الشاشة | ✔ | ✔ (*) | ✔ | ✔ | ✔ | ✔ | ✔ | |
| خطة موحدة | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Simulcast | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| MediArecorder | ✔ | |||||||
| منتهي إلى النهاية التشفير | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| تدفقات إدراج |
دعم منصة/نظام تشغيل إضافي من المجتمع الآخر
أضف 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
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 الخاص بك ، الموجود في <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 الرسمي WEBRTC تستخدم الآن طرقًا ثابتة في واجهة EglBase . فقط أضف هذا إلى مستوى التطبيق الخاص بك build.gradle :
android {
// ...
compileOptions {
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
}
} إذا لزم الأمر ، في نفس build.gradle ، ستحتاج إلى زيادة minSdkVersion من defaultConfig حتى 23 (حاليًا مولد رفرفة افتراضي تعيينه إلى 16 ).
عندما تقوم بتجميع الإصدار APK ، تحتاج إلى إضافة العمليات التالية ، إعداد قواعد Proguard
المشروع لا ينفصل عن المساهمين في المجتمع.
لمزيد من الأمثلة ، يرجى الرجوع إلى Flutter-WebRTC-DEMO.
هذا المشروع موجود بفضل جميع الأشخاص الذين يساهمون. [يساهم].
كن مساهمًا ماليًا وساعدنا في الحفاظ على مجتمعنا. [يساهم]
دعم هذا المشروع مع مؤسستك. سيظهر شعارك هنا مع رابط لموقع الويب الخاص بك. [يساهم]