omnitalk_sdk 2.1.2
omnitalk_sdk: ^2.1.2 copied to clipboard
simple and easy flutter sdk for real time communication using WebRTC
Omnitalk FLUTTER SDK #
OmniTalk is an SDK that enables easy and convenient real-time communication within apps using webRTC standard technology.
Feature Overview #
feature | implemented | ios | android |
---|---|---|---|
Audio Call | ✔️ | ✔️ | ✔️ |
Video Call | ✔️ | ✔️ | ✔️ |
Sip Call | ✔️ | ✔️ | ✔️ |
Chatting | ✔️ | ✔️ | ✔️ |
Audio Conference | ✔️ | ✔️ | ✔️ |
Video Conference | ✔️ | ✔️ | ✔️ |
AudioMute | ✔️ | ✔️ | ✔️ |
VideoMute | ✔️ | ✔️ | ✔️ |
Video Switch | ✔️ | ✔️ | ✔️ |
Pre-Requisite #
-
OmniTalk Service ID & Service Key
-
To use OmniTalk, you need to obtain a service ID and service key by visiting the OmniTalk website.
-
Alternatively, you can obtain a test ID and key for free usage for one hour from here.
-
Minimum System Requirements
- Flutter >= 3.1.0 - Dart >= 2.19 - Android API >= 21 - iOS >= 11
Getting Started #
For detailed usage instructions, please refer to this documentation.
-
Installation
import 'package:omnitalk_sdk/omnitalk_sdk.dart';
-
Create OmniTalk Object
Create an OmniTalk object using the service ID and service key obtained.
Omnitalk.sdkInit( serviceId: 'Service Id', serviceKey: 'Service Key'); Omnitalk omnitalk = Omnitalk.getInstance();
-
Create Session
await omnitalk.createSession(userId: userId);
-
Create Room
Create a room of the specified room type.
await omnitalk.createRoom(roomType: RoomType.videoroom);
-
Join Room
Upon joining a room, you will automatically start an audio broadcast and be able to send and receive chat messages.
await omnitalk.joinRoom(roomId: roomId);
-
Start Broadcasting (Video)
Audio broadcasting starts by simply joining a room. For video broadcasting, you need to pass an object to be able to contain your video stream.
await omnitalk.publish(localRenderer: localVideo);
-
Receive Event Messages
To receive event messages from the OmniTalk SDK, use the following:
omnitalk.on('event', eventListener);
-
Subscribe to Broadcasting
To subscribe to a broadcast, provide the session ID of the desired broadcast.
await omnitalk.subscribe( publisherSession: publisherSession!, remoteRenderer: remoteVideo);
-
Voice Call (1:1)
To implement a 1:1 voice call, you can easily use the offerCall and answerCall APIs. For detailed implementation guide, refer to the documentation.
await omnitalk.offerCall( callType: CallType.audiocall,callee: callee); await omnitalk.answerCall();
-
Video Call (1:1)
To implement a 1:1 video call, use the offerCall and answerCall APIs. For detailed implementation guide, refer to the documentation.
await omnitalk.offerCall( callType: CallType.videocall,callee: callee!,record: false, localRenderer: localVideo, remoteRenderer: remoteVideo); await omnitalk.answerCall( callType: CallType.videocall,caller: caller,localRenderer: localVideo,remoteRenderer: remoteVideo);
-
Chat Messages
Upon joining a room (regardless of type), you can send and receive chat messages.
await omnitalk.sendMessage(action: MessageAction.send, message: message!);
-
End Broadcasting
await omnitalk.leave();
Documentation #
Comprehensive and easy-to-follow documentation is available.
Issue #
For any issues or questions while using OmniTalk, please refer to the issue page.
Example Projects #
Demo projects showcasing simple functionality implemented using the OmniTalk SDK are available.