waterbus_sdk 2.0.0 copy "waterbus_sdk: ^2.0.0" to clipboard
waterbus_sdk: ^2.0.0 copied to clipboard

Flutter plugin of Waterbus. Build video call or online meeting application with SFU model. Supports iOS, Android, MacOS, Windows, Linux and Web.

Use this package as a library

Depend on it

Run this command:

With Flutter:

 $ flutter pub add waterbus_sdk

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dependencies:
  waterbus_sdk: ^2.0.0

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:waterbus_sdk/constants/constants.dart';
import 'package:waterbus_sdk/constants/endpoints.dart';
import 'package:waterbus_sdk/constants/rtc_configurations.dart';
import 'package:waterbus_sdk/constants/status_code.dart';
import 'package:waterbus_sdk/constants/storage_keys.dart';
import 'package:waterbus_sdk/constants/ws_event.dart';
import 'package:waterbus_sdk/core/api/auth/datasources/auth_local_data_source.dart';
import 'package:waterbus_sdk/core/api/auth/datasources/auth_remote_data_source.dart';
import 'package:waterbus_sdk/core/api/auth/repositories/auth_repository.dart';
import 'package:waterbus_sdk/core/api/base/base_local_storage.dart';
import 'package:waterbus_sdk/core/api/base/base_remote_data.dart';
import 'package:waterbus_sdk/core/api/chat/datasources/chat_remote_data_source.dart';
import 'package:waterbus_sdk/core/api/chat/repositories/chat_repository.dart';
import 'package:waterbus_sdk/core/api/messages/datasources/message_remote_data_source.dart';
import 'package:waterbus_sdk/core/api/messages/repositories/message_repository.dart';
import 'package:waterbus_sdk/core/api/rooms/datasources/room_remote_data_source.dart';
import 'package:waterbus_sdk/core/api/rooms/repositories/room_repository.dart';
import 'package:waterbus_sdk/core/api/user/datasources/user_remote_data_source.dart';
import 'package:waterbus_sdk/core/api/user/repositories/user_repository.dart';
import 'package:waterbus_sdk/core/webrtc/webrtc_manager.dart';
import 'package:waterbus_sdk/core/webrtc/webrtc_manager_impl.dart';
import 'package:waterbus_sdk/core/websocket/interfaces/ws_emitter.dart';
import 'package:waterbus_sdk/core/websocket/interfaces/ws_handler.dart';
import 'package:waterbus_sdk/core/websocket/unload_handler/handler_stub.dart';
import 'package:waterbus_sdk/core/websocket/unload_handler/handler_web.dart';
import 'package:waterbus_sdk/core/websocket/unload_handler/index.dart';
import 'package:waterbus_sdk/core/websocket/ws_emitter_impl.dart';
import 'package:waterbus_sdk/core/websocket/ws_handler_impl.dart';
import 'package:waterbus_sdk/e2ee/e2ee_manager.dart';
import 'package:waterbus_sdk/e2ee/key_provider.dart';
import 'package:waterbus_sdk/flutter_waterbus_sdk.dart';
import 'package:waterbus_sdk/injection/injection_container.config.dart';
import 'package:waterbus_sdk/injection/injection_container.dart';
import 'package:waterbus_sdk/native/native_channel.dart';
import 'package:waterbus_sdk/native/picture-in-picture/index.dart';
import 'package:waterbus_sdk/native/picture-in-picture/pip_stub.dart';
import 'package:waterbus_sdk/native/picture-in-picture/pip_web.dart';
import 'package:waterbus_sdk/native/replaykit.dart';
import 'package:waterbus_sdk/native/virtual_background/index.dart';
import 'package:waterbus_sdk/native/virtual_background/virtual_background_app.dart';
import 'package:waterbus_sdk/native/virtual_background/virtual_background_web.dart';
import 'package:waterbus_sdk/stats/webrtc_audio_stats.dart';
import 'package:waterbus_sdk/stats/webrtc_video_stats.dart';
import 'package:waterbus_sdk/types/error/app_exception.dart';
import 'package:waterbus_sdk/types/error/failures.dart';
import 'package:waterbus_sdk/types/externals/enums/audio_level.dart';
import 'package:waterbus_sdk/types/externals/enums/callback_events.dart';
import 'package:waterbus_sdk/types/externals/enums/camera_type.dart';
import 'package:waterbus_sdk/types/externals/enums/index.dart';
import 'package:waterbus_sdk/types/externals/enums/member_status_enum.dart';
import 'package:waterbus_sdk/types/externals/enums/message_status_enum.dart';
import 'package:waterbus_sdk/types/externals/enums/room_role.dart';
import 'package:waterbus_sdk/types/externals/enums/rtc_video_codec.dart';
import 'package:waterbus_sdk/types/externals/enums/sending_status_enum.dart';
import 'package:waterbus_sdk/types/externals/enums/status_message.dart';
import 'package:waterbus_sdk/types/externals/enums/status_seen_message_enum.dart';
import 'package:waterbus_sdk/types/externals/enums/video_quality_enum.dart';
import 'package:waterbus_sdk/types/externals/models/audio_config.dart';
import 'package:waterbus_sdk/types/externals/models/audio_config.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/audio_config.g.dart';
import 'package:waterbus_sdk/types/externals/models/auth_payload.dart';
import 'package:waterbus_sdk/types/externals/models/auth_payload.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/auth_payload.g.dart';
import 'package:waterbus_sdk/types/externals/models/base_url.dart';
import 'package:waterbus_sdk/types/externals/models/beauty_filters.dart';
import 'package:waterbus_sdk/types/externals/models/beauty_filters.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/call_state.dart';
import 'package:waterbus_sdk/types/externals/models/call_state.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/callback_payload.dart';
import 'package:waterbus_sdk/types/externals/models/callback_payload.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/conversation_socket_event.dart';
import 'package:waterbus_sdk/types/externals/models/index.dart';
import 'package:waterbus_sdk/types/externals/models/join_room_params.dart';
import 'package:waterbus_sdk/types/externals/models/media_config.dart';
import 'package:waterbus_sdk/types/externals/models/media_config.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/media_config.g.dart';
import 'package:waterbus_sdk/types/externals/models/media_source.dart';
import 'package:waterbus_sdk/types/externals/models/member.dart';
import 'package:waterbus_sdk/types/externals/models/member.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/member.g.dart';
import 'package:waterbus_sdk/types/externals/models/message.dart';
import 'package:waterbus_sdk/types/externals/models/message.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/message.g.dart';
import 'package:waterbus_sdk/types/externals/models/message_socket_event.dart';
import 'package:waterbus_sdk/types/externals/models/participant.dart';
import 'package:waterbus_sdk/types/externals/models/participant.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/participant.g.dart';
import 'package:waterbus_sdk/types/externals/models/participant_media_state.dart';
import 'package:waterbus_sdk/types/externals/models/participant_media_state.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/presigned_url.dart';
import 'package:waterbus_sdk/types/externals/models/presigned_url.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/presigned_url.g.dart';
import 'package:waterbus_sdk/types/externals/models/room.dart';
import 'package:waterbus_sdk/types/externals/models/room.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/room.g.dart';
import 'package:waterbus_sdk/types/externals/models/room_params.dart';
import 'package:waterbus_sdk/types/externals/models/rtc_participant_stats.dart';
import 'package:waterbus_sdk/types/externals/models/subscribe_payload.dart';
import 'package:waterbus_sdk/types/externals/models/subscribe_payload.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/subscribe_payload.g.dart';
import 'package:waterbus_sdk/types/externals/models/subtitle.dart';
import 'package:waterbus_sdk/types/externals/models/subtitle.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/subtitle.g.dart';
import 'package:waterbus_sdk/types/externals/models/user.dart';
import 'package:waterbus_sdk/types/externals/models/user.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/user.g.dart';
import 'package:waterbus_sdk/types/externals/models/video_config.dart';
import 'package:waterbus_sdk/types/externals/models/video_config.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/video_config.g.dart';
import 'package:waterbus_sdk/types/externals/models/video_quality.dart';
import 'package:waterbus_sdk/types/externals/models/video_quality.freezed.dart';
import 'package:waterbus_sdk/types/externals/models/video_quality.g.dart';
import 'package:waterbus_sdk/types/index.dart';
import 'package:waterbus_sdk/types/internals/enums/connection_type.dart';
import 'package:waterbus_sdk/types/internals/enums/description_type.dart';
import 'package:waterbus_sdk/types/internals/enums/index.dart';
import 'package:waterbus_sdk/types/internals/enums/room_status.dart';
import 'package:waterbus_sdk/types/internals/enums/rtc_audio_codec.dart';
import 'package:waterbus_sdk/types/internals/enums/rtc_track_kind.dart';
import 'package:waterbus_sdk/types/internals/enums/track_type.dart';
import 'package:waterbus_sdk/types/internals/enums/video_layout.dart';
import 'package:waterbus_sdk/types/internals/models/audio_stats_params.dart';
import 'package:waterbus_sdk/types/internals/models/audio_stats_params.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/index.dart';
import 'package:waterbus_sdk/types/internals/models/int_converter.dart';
import 'package:waterbus_sdk/types/internals/models/participant_e2ee_config.dart';
import 'package:waterbus_sdk/types/internals/models/participant_e2ee_config.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/participant_screen_sharing_config.dart';
import 'package:waterbus_sdk/types/internals/models/participant_screen_sharing_config.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/participant_screen_sharing_config.g.dart';
import 'package:waterbus_sdk/types/internals/models/publish_ws_emitter_payload.dart';
import 'package:waterbus_sdk/types/internals/models/publish_ws_emitter_payload.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/publish_ws_emitter_payload.g.dart';
import 'package:waterbus_sdk/types/internals/models/stats.dart';
import 'package:waterbus_sdk/types/internals/models/subscribe_response.dart';
import 'package:waterbus_sdk/types/internals/models/track_quality.dart';
import 'package:waterbus_sdk/types/internals/models/track_quality_request.dart';
import 'package:waterbus_sdk/types/internals/models/track_quality_request.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/track_quality_request.g.dart';
import 'package:waterbus_sdk/types/internals/models/track_subscribed_message.dart';
import 'package:waterbus_sdk/types/internals/models/track_subscribed_message.freezed.dart';
import 'package:waterbus_sdk/types/internals/models/track_subscribed_message.g.dart';
import 'package:waterbus_sdk/types/internals/models/video_stats_params.dart';
import 'package:waterbus_sdk/types/internals/models/video_stats_params.freezed.dart';
import 'package:waterbus_sdk/types/result.dart';
import 'package:waterbus_sdk/ui/waterbus_media_view.dart';
import 'package:waterbus_sdk/ui/waterbus_render_manager.dart';
import 'package:waterbus_sdk/utils/callkit/callkit_listener.dart';
import 'package:waterbus_sdk/utils/codec_selector.dart';
import 'package:waterbus_sdk/utils/dio/dio_configuration.dart';
import 'package:waterbus_sdk/utils/encrypt/aes_256_gcm.dart';
import 'package:waterbus_sdk/utils/encrypt/encrypt.dart';
import 'package:waterbus_sdk/utils/extensions/duration_extension.dart';
import 'package:waterbus_sdk/utils/extensions/pc_extension.dart';
import 'package:waterbus_sdk/utils/extensions/sdp_extension.dart';
import 'package:waterbus_sdk/utils/logger/logger.dart';
import 'package:waterbus_sdk/utils/msg_pack_parser.dart';
import 'package:waterbus_sdk/utils/path_helper.dart';
import 'package:waterbus_sdk/utils/queues/completer_queue.dart';
import 'package:waterbus_sdk/utils/replaykit/replaykit_helper.dart';
import 'package:waterbus_sdk/waterbus_event_listener.dart';
import 'package:waterbus_sdk/waterbus_sdk_impl.dart';
import 'package:waterbus_sdk/waterbus_sdk_interface.dart';