Getting Started
설치 단계와 이 플러그인의 전체 마크다운 가이드가 포함된 설정 지시어를 복사하세요.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-stream-call`, `@capgo/capacitor-streamcall`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/streamcall/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
설치
설치 섹션Capgo AI 도구에 다음 명령어를 사용하여 스킬을 추가할 수 있습니다.
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins다음 프롬프트를 사용하세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-stream-call` plugin in my project.만약 Manual Setup을 선호한다면, 다음 명령어를 실행하고 아래 플랫폼별 지침을 따르세요.
bun add @capgo/capacitor-stream-callbunx cap sync수입
수입 섹션import { StreamCall } from '@capgo/capacitor-stream-call';API 개요
API 개요 제목login
로그인스트리밍 비디오 서비스 로그인
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({ token: 'your-token', userId: 'user-123', name: 'John Doe', apiKey: 'your-api-key'});logout
로그아웃스트리밍 비디오 서비스 로그아웃
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.logout();call
전화다른 사용자에게 전화 걸기
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.call({ userId: 'user-456', type: 'video', ring: true});endCall
전화 종료현재 통화를 종료합니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.endCall();joinCall
joinCall 섹션기존 통화에 참가합니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.joinCall({ callId: 'call001', callType: 'default' });setMicrophoneEnabled
setMicrophoneEnabled 섹션마이크를 사용하거나 비활성화합니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setMicrophoneEnabled({ enabled: false });setCameraEnabled
setCameraEnabled 섹션카메라를 사용하거나 비활성화합니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setCameraEnabled({ enabled: false });enableBluetooth
enableBluetooth 섹션블루투스 오디오를 활성화하세요
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.enableBluetooth();acceptCall
'acceptCall' 섹션incoming call을 수락합니다
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.acceptCall();rejectCall
'rejectCall' 섹션incoming call을 거부합니다
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.rejectCall();isCameraEnabled
'isCameraEnabled' 섹션카메라가 활성화되어 있는지 확인합니다
import { StreamCall } from '@capgo/capacitor-stream-call';
const isCameraEnabled = await StreamCall.isCameraEnabled();console.log(isCameraEnabled);getCallStatus
'getCallStatus' 섹션__CAPGO_KEEP_0__
import { StreamCall } from '@capgo/capacitor-stream-call';
const callStatus = await StreamCall.getCallStatus();console.log(callStatus);getRingingCall
__CAPGO_KEEP_1__ "전화 상태 확인"__CAPGO_KEEP_0__
import { StreamCall } from '@capgo/capacitor-stream-call';
const ringingCall = await StreamCall.getRingingCall();console.log(ringingCall);toggleViews
__CAPGO_KEEP_1__ "전화 상태 전환"__CAPGO_KEEP_0__
import { StreamCall } from '@capgo/capacitor-stream-call';
const { newLayout } = await StreamCall.toggleViews();console.log(`Layout switched to ${newLayout}`);setSpeaker
__CAPGO_KEEP_1__ "화면 전환"__CAPGO_KEEP_0__
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setSpeaker({ name: 'speaker' });switchCamera
__CAPGO_KEEP_1__ "스피커 전환"카메라 전환
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.switchCamera({ camera: 'back' });getCallInfo
getCallInfo 섹션전화 중인 활성 전화에 대한 자세한 정보를 포함한 호출자 정보를 가져옵니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.getCallInfo({} as { callId: string });setDynamicStreamVideoApikey
setDynamicStreamVideoApikey 섹션정적 키를 덮어쓰는 동적 스트림 비디오 API 키를 설정합니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setDynamicStreamVideoApikey({ apiKey: 'new-api-key' });getDynamicStreamVideoApikey
getDynamicStreamVideoApikey 섹션현재 설정된 동적 스트림 비디오 API 키를 가져옵니다.
import { StreamCall } from '@capgo/capacitor-stream-call';
const result = await StreamCall.getDynamicStreamVideoApikey();if (result.hasDynamicKey) { console.log('Dynamic API key:', result.apiKey);} else { console.log('Using static API key from resources');}getCurrentUser
getCurrentUser 섹션현재 사용자의 정보를 가져오세요
import { StreamCall } from '@capgo/capacitor-stream-call';
const currentUser = await StreamCall.getCurrentUser();console.log(currentUser);타입 참조
타입 참조 섹션LoginOptions
로그인 옵션 섹션export interface LoginOptions { /** Stream Video API token */ token: string; /** User ID for the current user */ userId: string; /** Display name for the current user */ name: string; /** Optional avatar URL for the current user */ imageURL?: string; /** Stream Video API key */ apiKey: string; /** ID of the HTML element where the video will be rendered */ magicDivId?: string; pushNotificationsConfig?: PushNotificationsConfig;}SuccessResponse
성공 응답 섹션export interface SuccessResponse { /** Whether the operation was successful */ success: boolean; callId?: string;}CallOptions
콜 옵션 섹션export interface CallOptions { /** User ID of the person to call */ userIds: string[]; /** Type of call, defaults to 'default' */ type?: CallType; /** Whether to ring the other user, defaults to true */ ring?: boolean; /** Team name to call */ team?: string; /** Whether to start the call with video enabled, defaults to false */ video?: boolean; /** Custom data to be passed to the call */ custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;}CallEvent
콜 이벤트 섹션export interface CallEvent { /** ID of the call */ callId: string; /** Current state of the call */ state: CallState; /** User ID of the participant in the call who triggered the event */ userId?: string; /** Reason for the call state change, if applicable */ reason?: string; /** Information about the caller (for incoming calls) */ caller?: CallMember; /** List of call members */ members?: CallMember[];
custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;
count?: number;}IncomingCallPayload
IncomingCallPayloadexport interface IncomingCallPayload { /** Full call CID (e.g. default:123) */ cid: string; /** Event type (currently always "incoming") */ type: 'incoming'; /** Information about the caller */ caller?: CallMember; /** Custom data to be passed to the call */ custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;
/** * Get the native Capacitor plugin version * * @returns {Promise<{ id: string }>} an Promise with version for this device * @throws An error if the something went wrong */ getPluginVersion(): Promise<{ version: string }>;}CameraEnabledResponse
CameraEnabledResponseexport interface CameraEnabledResponse { enabled: boolean;}StreamCallLayout
StreamCallLayoutexport type StreamCallLayout = 'grid' | 'spotlight' | 'dynamic' | 'fullScreen' | 'fullscreen';DynamicApiKeyResponse
DynamicApiKeyResponseexport interface DynamicApiKeyResponse { /** The dynamic API key if set, null if not */ apiKey: string | null; /** Whether a dynamic key is currently set */ hasDynamicKey: boolean;}CurrentUserResponse
CurrentUserResponseexport interface CurrentUserResponse { /** User ID of the current user */ userId: string; /** Display name of the current user */ name: string; /** Avatar URL of the current user */ imageURL?: string; /** Whether the user is currently logged in */ isLoggedIn: boolean;}PushNotificationsConfig
PushNotificationsConfigexport interface PushNotificationsConfig { pushProviderName: string; voipProviderName: string;}CallType
CallTypeexport type CallType = 'default' | 'audio' | 'audio_room' | 'livestream' | 'development';CallState
CallStateexport type CallState = // User-facing states | 'idle' | 'ringing' | 'joining' | 'reconnecting' | 'joined' | 'leaving' | 'left' // Event-specific states | 'created' | 'session_started' | 'rejected' | 'participant_counts' | 'missed' | 'accepted' | 'ended' | 'camera_enabled' | 'camera_disabled' | 'speaker_enabled' | 'speaker_disabled' | 'microphone_enabled' | 'microphone_disabled' | 'outgoing_call_ended' | 'unknown';이 페이지는 플러그인의 src/definitions.ts업스트림에서 pubic API이 변경될 때 다시 싱크를 실행하세요.
Getting Started
Section titled “Keep going from Getting Started”Capacitor를 사용 중이라면 Getting Started 대시보드와 API 운영을 계획하고 연결하세요. Using @capgo/capacitor-stream-call native 기능을 사용하는 경우 Using @capgo/capacitor-stream-call API 개요 API 개요의 구현 세부 사항 소개 소개의 구현 세부 사항 API 키 API 키의 구현 세부 사항 기기 기기의 구현 세부 사항