jitsi_meet_flutter_sdk는 Flutter 애플리케이션에 Jitsi Meet의 비디오 회의 기능을 통합하는 플러터 플러그인으로, 안드로이드 및 iOS에서 원활하고 네이티브처럼 느껴지는 경험을 제공합니다. 강력하고 오픈소스인 Jitsi 인프라를 활용하여 실시간 오디오, 비디오, 화면 공유를 앱 내부에 직접 삽입할 수 있게 해줍니다. SDK는 사용자 정의 가능한 미팅 인터페이스와 엔드 투 엔드 암호화를 통해 안전하고 확장 가능한 통신을 지원합니다.
사용 사례
앱 내 영상 통화를 텔레헬스 플랫폼에 활용
가상 강의실과 온라인 학습 앱
원격 팀 협업 도구
비디오 상호작용이 있는 고객 지원
관객 참여를 통한 라이브 이벤트 스트리밍
주요 기능
크로스 플랫폼 호환성 (Android 및 iOS)
엔드 투 엔드 암호화
사용자 정의 가능한 UI 구성 요소
화면 공유 및 녹화 지원
기존 플러터 워크플로우와의 통합
적합한 대상
실시간 통신 기능을 구축하는 개발자
교육 기술 스타트업
헬스케어 앱 제작자
기업 협업 도구
오픈소스 프로젝트 기여자
고려 사항
완전한 제어를 위해 자체 호스팅 또는 관리되는 Jitsi 서버가 필요합니다
고품질 비디오를 위한 네트워크 대역폭 고려 사항
고급 보안 설정을 위한 추가 구성
핵심 Jitsi UI 요소의 사용자 지정이 제한적
최적의 성능을 위해 안정적인 인터넷 연결에 의존
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Jitsi Meet Flutter SDK
The Jitsi Meet Flutter SDK provides the same user experience as the Jitsi Meet app, in the form of a Flutter plugin so that you can embed and customize Jitsi Meet in your own Flutter app.
Supported platforms
Platform
Supported
Notes
Android
✅
Minimum API level is 24
iOS
✅
Minimum supported version is 15.1
Web
❌
Sample application using the Flutter
If you want to see how easy integrating the Jitsi Meet Flutter SDK into a Flutter application is, take a look at the sample applications repository.
Installation
Add dependency
Add the dependency from command-line
$ flutter pub add jitsi_meet_flutter_sdk
The command above will add this to the pubspec.yaml file in your project (you can do this manually):
Firstly, create a JitsiMeet object, then call the method join from it with a JitsiMeetConferenceOptions object
var jitsiMeet = JitsiMeet();
var options = JitsiMeetConferenceOptions(room: 'jitsiIsAwesome');
jitsiMeet.join(options);
Configuration
iOS
Make sure in Podfile from ios directory you set the ios version 15.1 or higher
platform :ios, '15.1'
The plugin requests camera and microphone access, make sure to include the required entries for NSCameraUsageDescription and NSMicrophoneUsageDescription in your Info.plist file from the ios/Runner directory.
<key>NSCameraUsageDescription</key>
<string>The app needs access to your camera for meetings.</string><key>NSMicrophoneUsageDescription</key><string>The app needs access to your microphone for meetings.</string>
The application:label field from the Jitsi Meet Android SDK will conflict with your application's one . Go to android/app/src/main/AndroidManifest.xml and add the tools library and tools:replace="android:label" to the application tag.
Joins a meeting with the given options and optionally a listener is given
options : meeting options
listener : event listener for events triggered by the native sdks
hangUp()
The localParticipant leaves the current meeting.
setAudioMuted(bool muted)
Sets the state of the localParticipant audio muted according to the muted parameter.
setVideoMuted(bool muted)
Sets the state of the localParticipant video muted according to the muted parameter.
sendEndpointTextMessage({String? to, required String message})
Sends a message via the data channel to one particular participant or to all of them. If the to param is empty, the message will be sent to all the participants in the conference.
In order to get the participantId, the participantsJoined event should be listened for, which have as a parameter the participantId and this should be stored somehow.
toggleScreenShare(bool enabled)
Sets the state of the localParticipant screen sharing according to the enabled parameter.
openChat([String? to])
Opens the chat dialog. If to contains a valid participantId, the private chat with that particular participant will be opened.
sendChatMessage({String? to, required String message})
Sends a chat message via to one particular participant or to all of them. If the to param is empty, the message will be sent to all the participants in the conference.
In order to get the participantId, the participantsJoined event should be listened for, which have as a parameter the participantId and this should be stored somehow.
closeChat()
Closes the chat dialog.
retrieveParticipantsInfo()
Sends and event that will trigger the participantsInfoRetrieved event which will contain participants information
JitsiMeetConferenceOptions
This object encapsulates all the options that can be tweaked when joining a conference.