Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev3.17.0

flutter_voximplant

Plugin Voximplant para incorporar comunicação de áudio e vídeo em aplicativos Flutter.

AndroidiOS
Downloads em 30 dias
3,3 mil
Curtidas
35
Pontos Pub
140

Instalar pacote

flutter pub add flutter_voximplant

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote flutter_voximplant permite a integração fluida de comunicação em tempo real por voz e vídeo em aplicativos Flutter. Desenvolvido pela Voximplant, oferece uma interface simples para estabelecer chamadas ponto a ponto, gerenciar fluxos de áudio e vídeo e lidar com eventos de chamada. O plugin suporta as plataformas Android e iOS, tornando-o ideal para aplicativos multiplataforma que exigem recursos de comunicação ao vivo. Ele utiliza a infraestrutura em nuvem da Voximplant para garantir conectividade confiável e transmissão de mídia de alta qualidade. Os desenvolvedores podem usá-lo para criar aplicativos de telemedicina, suporte ao cliente ou reuniões virtuais com configuração mínima. O pacote é de código aberto e é mantido ativamente.

Casos de uso

  • Chamadas de vídeo dentro do aplicativo
  • Aplicativos de chat de atendimento ao cliente
  • Plataformas de telemedicina
  • Salas de aula virtuais
  • Ferramentas de colaboração remota

Principais recursos

  • Chamadas de voz e vídeo em tempo real
  • Suporte multiplataforma (Android e iOS)
  • Integração fácil com a nuvem Voximplant
  • Gerenciamento de fluxo de mídia
  • Manipulação de evento de chamada

Indicado para

  • Desenvolvedores construindo aplicativos de comunicação em tempo real
  • Startups que precisam de integração rápida de VoIP
  • Aplicativos que exigem chamadas seguras ponto a ponto
  • Equipes usando serviços de backend do Voximplant

Considerações

  • Requer conta Voximplant e chaves de API
  • Depende de conexão estável com a internet
  • Pode exigir configuração de SDK nativo para recursos avançados
  • Limitado à infraestrutura da Voximplant

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

flutter_voximplant

Voximplant Flutter SDK for embedding voice and video communication into Flutter applications.

Supported platforms

Platform Minimum version
Android 5.0 (API 21)
iOS 12.0

Requirements

  • Flutter >= 3.24.0
  • Dart SDK ^3.5.0
  • Android: JDK 17, Android Gradle Plugin and Kotlin versions that support compileSdk 35 (AGP 8.6+, Kotlin 2.x are recommended)
  • iOS: Xcode 15+, Swift 5.9+

Installation

Add the dependency to your application's pubspec.yaml:

dependencies:
  flutter_voximplant: ^3.17.0

Then run:

flutter pub get
iOS setup
Info.plist

Add NSMicrophoneUsageDescription and NSCameraUsageDescription entries to your application's Info.plist:

<key>NSMicrophoneUsageDescription</key>
<string>Microphone is required to make audio calls</string>
<key>NSCameraUsageDescription</key>
<string>Camera is required to make video calls</string>
Android setup

It is required to add Java 11 support in android/app/build.gradle:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

Usage

To get started, you'll need to register a free Voximplant developer account.

Initialization

Client is the main class of the SDK that provides access to Voximplant’s functions, the Voximplant().getClient() method is used to get its instance:

import 'package:flutter_voximplant/flutter_voximplant.dart';


VIClient client = Voximplant().getClient();
Connect and log in to the Voximplant Cloud

The VIClient.getClientState() method is used to get the current state of connection to the Voximplant cloud and perform the actions according to it.

When initializing and connecting the SDK to the Voximplant cloud, you need to specify the node to connect to. Your node is bound to your Voximplant account. To find which node your account belongs to, log in to your control panel and see the Credentials for working with API, SDK, SIP section on the main dashboard.

  const accountNode = VINode.NodeX;
  Future<String> loginWithPassword(String username, String password) async {
    VIClientState clientState = await _client.getClientState();
    if (clientState == VIClientState.LoggedIn) {
      return _displayName;
    }
    if (clientState == VIClientState.Disconnected) {
      await _client.connect(node: accountNode);
    }
    VIAuthResult authResult = await _client.login(username, password);
    _displayName = authResult.displayName;
    return _displayName;
  }
Make calls

To initiate a call we need the VIClient.call method. There is a VICallSettings class which could contain custom data and extra headers (SIP headers).

Since the call can behave in different ways, there is a group of call events. They can be triggered by the VICall class instance as the class contains all the functionality for call management.

  Future<VICall> makeAudioCall(String number) async {
     VICall call = await _client.call(number);
     call.onCallDisconnected = _onCallDisconnected;
     call.onCallFailed = _onCallFailed;
     call.onCallConnected = _onCallConnected;
     call.onCallRinging = _onCallRinging;
     call.onCallAudioStarted = _onCallAudioStarted;
     return call;
  }
   
  _onCallConnected(VICall call, Map<String, String>? headers) {
      print('Call connected');
  }
Receiving calls

Client.onIncomingCall is used to get incoming calls.

There are three methods for an incoming call: answer, decline and reject. An audio stream can be sent only after the answer method call.

  CallService._() {
    _client = Voximplant().getClient();
    _client.onIncomingCall = _onIncomingCall;
  }

  _onIncomingCall(VIClient client, VICall call, bool video, Map<String, String>? headers) async {
    await call.answer();
  }
Mid-call operations

Audio call can be put on/off hold

  _hold() async {
    try {
      await _call.hold(!_isOnHold);
      setState(() {
        _isOnHold = !_isOnHold;
      });
    } catch (e) {
      
    }

  }
Audio device management

VIAudioDeviceManager class API allow to:

  • get all available audio devices
  • get currently selected audio device
  • select audio device
  • handle active audio device changes and new audio devices (for example, Bluetooth headset or wired headset connection). These changes trigger the appropriate events.

All types of audio devices are represented in the VIAudioDevice enum.

Note that there are platform specific nuances in audio device management.

To select an audio device:

  _selectAudioDevice(VIAudioDevice device) async{
    VIAudioDeviceManager audioDeviceManager = Voximplant().getAudioDeviceManager();
    audioDeviceManager.onAudioDeviceChanged = _onAudioDeviceChange;
    await audioDeviceManager.selectAudioDevice(device);
  }

  _onAudioDeviceChange(VIAudioDeviceManager audioDeviceManager, AudioDevice audioDevice) {
    // audio device is changed
  }

Demo

https://github.com/voximplant/flutter_demos

Example

A sample application is available in example/. To run it:

cd example
flutter pub get
flutter run

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.