flutter-incall-manager
flutter-incall-manager copied to clipboard
flutter-incall-manager
flutter-incall-manager
Port from react-native-incall-manager
- Handling media-routes/sensors/events during a audio/video chat on Flutter
API:
Methods
Method | android | ios | description |
---|---|---|---|
start({media: ?string, auto: ?boolean, ringback: ?string} ) |
:smile: | :smile: | start incall manager. ringback accept non-empty string or it won't playdefault: {media:'audio', auto: true, ringback: ''} |
stop({busytone: ?string} ) |
:smile: | :smile: | stop incall manager busytone accept non-empty string or it won't play default: {busytone: ''} |
turnScreenOn() | :smile: | :rage: | force turn screen on |
turnScreenOff() | :smile: | :rage: | force turn screen off |
setKeepScreenOn(enable: ?boolean ) |
:smile: | :smile: | set KeepScreenOn flag = true or falsedefault: false |
setSpeakerphoneOn(enable: ?boolean ) |
:smile: | :rage: | toggle speaker ON/OFF once. but not forcedefault: false |
setForceSpeakerphoneOn(flag: ?boolean ) |
:smile: | :smile: | true -> force speaker on false -> force speaker off null -> use default behavior according to media typedefault: null |
setMicrophoneMute(enable: ?boolean ) |
:smile: | :rage: | mute/unmute micophonedefault: falsep.s. if you use webrtc, you can just use track.enabled = false to mute |
async checkRecordPermission() | :smile: | :smile: | check record permission without promt. return Promise. see about permission section above |
async requestRecordPermission() | :smile: | :smile: | request record permission to user. return Promise. see about permission section above |
startRingtone(ringtone: string, ?vibrate_pattern: array, ?ios_category: string, ?seconds: number ) |
:smile: | :smile: | play ringtone. ringtone : 'DEFAULT' or 'BUNDLE'vibrate_pattern : same as RN, but does not support repeatios_category : ios only, if you want to use specific audio categoryseconds : android only, specify how long do you want to play rather than play once nor repeat. in sec. |
stopRingtone() | :smile: | :smile: | stop play ringtone if previous started via startRingtone() |
stopRingback() | :smile: | :smile: | stop play ringback if previous started via start() |
setFlashOn(enable: ?boolean, brightness: ?number ) |
:rage: | :smile: | set flash light on/off |
async getIsWiredHeadsetPluggedIn() | :rage: | :smile: | return wired headset plugged in state |
Events
Event | android | ios | description |
---|---|---|---|
'Proximity' | :smile: | :smile: | proximity sensor detected changes. data: {'isNear': boolean} |
'WiredHeadset' | :smile: | :smile: | fire when wired headset plug/unplug data: {'isPlugged': boolean, 'hasMic': boolean, 'deviceName': string } |
'NoisyAudio' | :smile: | :rage: | see andriod doc. data: null |
'MediaButton' | :smile: | :rage: | when external device controler pressed button. see android doc data: {'eventText': string, 'eventCode': number } |
'onAudioFocusChange' | :smile: | :rage: | see andriod doc data: {'eventText': string, 'eventCode': number } |