패키지, 저장소 및 앱 카테고리 검색

패키지 상세v1.0.0

flutter_incall

iOS/Android용 Flutter InCall Manager 플러그인.

30일 다운로드
31
좋아요
25
Pub 점수
25

패키지 설치

flutter pub add flutter_incall

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter InCall Manager는 Android 및 iOS용 크로스플랫폼 플러그인으로, Flutter 애플리케이션 내에서 통화 기능을 관리할 수 있게 해줍니다. 이 플러그인은 들어오는 통화와 나가는 통화 처리, 오디오 경로 관리, 통화 상태 모니터링과 같은 디바이스 레벨의 통화 제어에 접근할 수 있도록 제공합니다. 네이티브 통화 API와 통합되어 원활한 통화 관리 경험을 제공하며, VoIP 앱, 텔레헬스 플랫폼 또는 실시간 통화 처리가 필요한 통신 도구에 적합합니다. 백그라운드 통화 작업을 지원하고, 두 플랫폼 모두 시스템 수준의 통화 인터페이스와 작동합니다.

사용 사례

  • VoIP 애플리케이션
  • 원격의료 플랫폼
  • 실시간 통신 도구
  • 콜센터 소프트웨어
  • 백그라운드 호출 관리

주요 기능

  • 네이티브 호출 상태 모니터링
  • 오디오 루트 관리
  • 수신/발신 통화 처리
  • 크로스 플랫폼 지원 (iOS/Android)
  • 백그라운드 호출 기능

적합한 대상

  • VoIP 앱을 개발하는 개발자
  • 실시간 통화 제어가 필요한 앱
  • 모바일 통신 플랫폼
  • 의료 및 원격 지원 앱

고려 사항

  • 플랫폼별 권한이 필요합니다
  • iOS/Android에 한정
  • 백그라운드 실행을 위해 추가 구성이 필요할 수 있습니다
  • 완전한 기능을 위해 네이티브 SDK에 의존합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

flutter_incall

Port from react-native-incall-manager

  • 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}) :smile: :smile: start incall manager.
ringback accept non-empty string or it won't play
default: {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 false
default: false
setSpeakerphoneOn(enable: ?boolean) :smile: :rage: toggle speaker ON/OFF once. but not force
default: false
setForceSpeakerphoneOn(flag: ?boolean) :smile: :smile: true -> force speaker on
false -> force speaker off
null -> use default behavior according to media type
default: null
setMicrophoneMute(enable: ?boolean) :smile: :rage: mute/unmute micophone
default: false
p.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 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() :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 }

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.