jonataslaw / flutter-incall-manager

flutter-incall-manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

flutter_incall

  • Handling media-routes/sensors/events during a audio/video chat on Flutter

add to pubspec:

flutter_incall: ^1.0.0

import

import 'package:flutter_incall/flutter_incall.dart';

API:

Methods

Method android ios description
start({media: ?string, auto: ?boolean, ringback: ?string}) πŸ˜„ πŸ˜„ start incall manager.
ringback accept non-empty string or it won't play
default: {media:'audio', auto: true, ringback: ''}
stop({busytone: ?string}) πŸ˜„ πŸ˜„ stop incall manager
busytone accept non-empty string or it won't play
default: {busytone: ''}
turnScreenOn() πŸ˜„ 😑 force turn screen on
turnScreenOff() πŸ˜„ 😑 force turn screen off
setKeepScreenOn(enable: ?boolean) πŸ˜„ πŸ˜„ set KeepScreenOn flag = true or false
default: false
setSpeakerphoneOn(enable: ?boolean) πŸ˜„ 😑 toggle speaker ON/OFF once. but not force
default: false
setForceSpeakerphoneOn(flag: ?boolean) πŸ˜„ πŸ˜„ true -> force speaker on
false -> force speaker off
null -> use default behavior according to media type
default: null
setMicrophoneMute(enable: ?boolean) πŸ˜„ 😑 mute/unmute micophone
default: false
p.s. if you use webrtc, you can just use track.enabled = false to mute
async checkRecordPermission() πŸ˜„ πŸ˜„ check record permission without promt. return Promise. see about permission section above
async requestRecordPermission() πŸ˜„ πŸ˜„ request record permission to user. return Promise. see about permission section above
startRingtone(ringtone: string, ?vibrate_pattern: array, ?ios_category: string, ?seconds: number) πŸ˜„ πŸ˜„ play ringtone.
ringtone: 'DEFAULT' or 'BUNDLE'
vibrate_pattern: same as RN, but does not support repeat
ios_category: ios only, if you want to use specific audio category
seconds: android only, specify how long do you want to play rather than play once nor repeat. in sec.
stopRingtone() πŸ˜„ πŸ˜„ stop play ringtone if previous started via startRingtone()
stopRingback() πŸ˜„ πŸ˜„ stop play ringback if previous started via start()
setFlashOn(enable: ?boolean, brightness: ?number) 😑 πŸ˜„ set flash light on/off
async getIsWiredHeadsetPluggedIn() 😑 πŸ˜„ return wired headset plugged in state

Events

Event android ios description
'Proximity' πŸ˜„ πŸ˜„ proximity sensor detected changes.
data: {'isNear': boolean}
'WiredHeadset' πŸ˜„ πŸ˜„ fire when wired headset plug/unplug
data: {'isPlugged': boolean, 'hasMic': boolean, 'deviceName': string }
'NoisyAudio' πŸ˜„ 😑 see andriod doc.
data: null
'MediaButton' πŸ˜„ 😑 when external device controler pressed button. see android doc
data: {'eventText': string, 'eventCode': number }
'onAudioFocusChange' πŸ˜„ 😑 see andriod doc
data: {'eventText': string, 'eventCode': number }

About

flutter-incall-manager

License:ISC License


Languages

Language:Java 64.3%Language:Objective-C 28.9%Language:Dart 5.5%Language:Ruby 1.4%