Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
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`
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.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-stream-call` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
bun add @capgo/capacitor-stream-callbunx cap syncimport { StreamCall } from '@capgo/capacitor-stream-call';Mulai cepat
Bagian berjudul “Mulai cepat”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({ token: 'your-token', userId: 'user-123', name: 'John Doe', apiKey: 'your-api-key'});Contoh: logout
Bagian berjudul “Contoh: logout”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.logout();Contoh: call
Bagian berjudul “Contoh: call”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.call({ userId: 'user-456', type: 'video', ring: true});Kesalahan umum
Bagian berjudul “Kesalahan umum”- Listeners: hapus handle saat screen unmount.
- Sinkronisasi Native: jalankan
bunx cap syncsetelah upgrade plugin. - Sumber kebenaran tunggal: percayai
src/definitions.tsdi repo GitHub.
Ringkasan API
Bagian berjudul “Ikhtisar API”Login ke layanan Stream Video
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({ token: 'your-token', userId: 'user-123', name: 'John Doe', apiKey: 'your-api-key'});logout
Bagian berjudul “logout”Logout dari layanan Stream Video
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.logout();Mulai panggilan ke pengguna lain
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.call({ userId: 'user-456', type: 'video', ring: true});endCall
Bagian berjudul “endCall”Akhiri panggilan saat ini
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.endCall();joinCall
Bagian berjudul “joinCall”Gabung ke panggilan yang ada
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.joinCall({ callId: 'call001', callType: 'default' });setMicrophoneEnabled
Bagian berjudul “setMicrophoneEnabled”Aktifkan atau nonaktifkan mikrofon
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setMicrophoneEnabled({ enabled: false });setCameraEnabled
Bagian berjudul “setCameraEnabled”Aktifkan atau nonaktifkan kamera
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setCameraEnabled({ enabled: false });enableBluetooth
Bagian berjudul “enableBluetooth”Aktifkan audio bluetooth
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.enableBluetooth();acceptCall
Bagian berjudul “acceptCall”Terima panggilan masuk
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.acceptCall();rejectCall
Bagian berjudul “rejectCall”Tolak panggilan masuk
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.rejectCall();isCameraEnabled
Bagian berjudul “isCameraEnabled”Cek apakah kamera aktif
import { StreamCall } from '@capgo/capacitor-stream-call';
const isCameraEnabled = await StreamCall.isCameraEnabled();console.log(isCameraEnabled);getCallStatus
Bagian berjudul “getCallStatus”Dapatkan status panggilan saat ini
import { StreamCall } from '@capgo/capacitor-stream-call';
const callStatus = await StreamCall.getCallStatus();console.log(callStatus);getRingingCall
Bagian berjudul “getRingingCall”Dapatkan panggilan yang sedang berdering
import { StreamCall } from '@capgo/capacitor-stream-call';
const ringingCall = await StreamCall.getRingingCall();console.log(ringingCall);toggleViews
Bagian berjudul “toggleViews”Ganti layout video yang tersedia
import { StreamCall } from '@capgo/capacitor-stream-call';
const { newLayout } = await StreamCall.toggleViews();console.log(`Layout switched to ${newLayout}`);setSpeaker
Bagian berjudul “setSpeaker”Aktifkan speakerphone
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setSpeaker({ name: 'speaker' });switchCamera
Bagian berjudul “switchCamera”Ganti kamera
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.switchCamera({ camera: 'back' });getCallInfo
Bagian berjudul “getCallInfo”Dapatkan info detail panggilan aktif termasuk detail penelepon
import { StreamCall } from '@capgo/capacitor-stream-call';
const result = await StreamCall.getCallInfo({ callId: 'call-id-123' });console.log(result);setDynamicStreamVideoApikey
Bagian berjudul “setDynamicStreamVideoApikey”Atur API key Stream Video dinamis untuk menggantikan key statis
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setDynamicStreamVideoApikey({ apiKey: 'new-api-key' });getDynamicStreamVideoApikey
Bagian berjudul “getDynamicStreamVideoApikey”Dapatkan API key Stream Video dinamis yang sedang aktif
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
Bagian berjudul “getCurrentUser”Dapatkan informasi user saat ini
import { StreamCall } from '@capgo/capacitor-stream-call';
const currentUser = await StreamCall.getCurrentUser();console.log(currentUser);Referensi Tipe
Bagian berjudul “Referensi Tipe”LoginOptions
Bagian berjudul “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
Bagian berjudul “SuccessResponse”export interface SuccessResponse { /** Whether the operation was successful */ success: boolean; callId?: string;}CallOptions
Bagian berjudul “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
Bagian berjudul “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
Bagian berjudul “IncomingCallPayload”export 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
Bagian berjudul “CameraEnabledResponse”export interface CameraEnabledResponse { enabled: boolean;}StreamCallLayout
Bagian berjudul “StreamCallLayout”export type StreamCallLayout = 'grid' | 'spotlight' | 'dynamic' | 'fullScreen' | 'fullscreen';DynamicApiKeyResponse
Bagian berjudul “DynamicApiKeyResponse”export interface DynamicApiKeyResponse { /** The dynamic API key if set, null if not */ apiKey: string | null; /** Whether a dynamic key is currently set */ hasDynamicKey: boolean;}CurrentUserResponse
Bagian berjudul “CurrentUserResponse”export 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
Bagian berjudul “PushNotificationsConfig”export interface PushNotificationsConfig { pushProviderName: string; voipProviderName: string;}CallType
Bagian berjudul “CallType”export type CallType = 'default' | 'audio' | 'audio_room' | 'livestream' | 'development';CallState
Bagian berjudul “CallState”export 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';Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”Halaman ini dibuat dari plugin src/definitions.ts. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-stream-call untuk kapabilitas native di Menggunakan @capgo/capacitor-stream-call, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.