Lompat ke Konten

Mulai Belajar

GitHub

Siap untuk dipasang

Pasang

Kamu bisa menggunakan Setup Bantuan AI kami untuk menginstal plugin ini. Tambahkan Capgo kemampuan ke alat AI kamu menggunakan perintah berikut:

Tampilan Terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Lalu 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 kamu lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:

Tampilan Terminal
bun add @capgo/capacitor-stream-call
bunx cap sync

Import

Pasang
import { StreamCall } from '@capgo/capacitor-stream-call';

Ringkasan API

Ringkasan API

Masuk ke layanan Video Streaming

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({
token: 'your-token',
userId: 'user-123',
name: 'John Doe',
apiKey: 'your-api-key'
});

Keluar dari layanan Video Streaming

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
});

Berhenti panggilan saat ini

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.endCall();

Bergabung dengan panggilan yang sudah ada

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.joinCall({ callId: 'call001', callType: 'default' });

Aktifkan atau nonaktifkan mikrofon

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setMicrophoneEnabled({ enabled: false });

Aktifkan atau nonaktifkan kamera

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setCameraEnabled({ enabled: false });

Aktifkan audio bluetooth

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.enableBluetooth();

Terima panggilan masuk

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.acceptCall();

Tolak panggilan masuk

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.rejectCall();

Periksa jika kamera diaktifkan

import { StreamCall } from '@capgo/capacitor-stream-call';
const isCameraEnabled = await StreamCall.isCameraEnabled();
console.log(isCameraEnabled);

Dapatkan status panggilan saat ini

import { StreamCall } from '@capgo/capacitor-stream-call';
const callStatus = await StreamCall.getCallStatus();
console.log(callStatus);

Dapatkan panggilan berdering saat ini

import { StreamCall } from '@capgo/capacitor-stream-call';
const ringingCall = await StreamCall.getRingingCall();
console.log(ringingCall);

Sapu melalui tata letak video yang tersedia

import { StreamCall } from '@capgo/capacitor-stream-call';
const { newLayout } = await StreamCall.toggleViews();
console.log(`Layout switched to ${newLayout}`);

Atur speakerphone aktif

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setSpeaker({ name: 'speaker' });

Ganti kamera

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.switchCamera({ camera: 'back' });

Dapatkan informasi rinci tentang panggilan aktif termasuk detail pelaku panggilan

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.getCallInfo({} as { callId: string });

Atur kunci Stream Video dinamis API yang menggantikan satu statis

import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setDynamicStreamVideoApikey({ apiKey: 'new-api-key' });

Dapatkan kunci Stream Video dinamis yang sedang digunakan 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');
}

Dapatkan informasi pengguna saat ini

import { StreamCall } from '@capgo/capacitor-stream-call';
const currentUser = await StreamCall.getCurrentUser();
console.log(currentUser);
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;
}
export interface SuccessResponse {
/** Whether the operation was successful */
success: boolean;
callId?: string;
}
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[]
>;
}
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;
}
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 }>;
}
export interface CameraEnabledResponse {
enabled: boolean;
}
export type StreamCallLayout = 'grid' | 'spotlight' | 'dynamic' | 'fullScreen' | 'fullscreen';
export interface DynamicApiKeyResponse {
/** The dynamic API key if set, null if not */
apiKey: string | null;
/** Whether a dynamic key is currently set */
hasDynamicKey: boolean;
}
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;
}
export interface PushNotificationsConfig {
pushProviderName: string;
voipProviderName: string;
}
export type CallType = 'default' | 'audio' | 'audio_room' | 'livestream' | 'development';
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';

Halaman ini dihasilkan dari plugin’s src/definitions.tsRe-run sinkronisasi ketika publik API berubah di atas

Jika Anda menggunakan Getting Started untuk merencanakan dashboard dan API operasi, hubungkannya dengan Menggunakan @capgo/capacitor-stream-call untuk kemampuan asli dalam Menggunakan @capgo/capacitor-stream-call, API Ringkasan untuk detail implementasi dalam API Ringkasan, Pendahuluan untuk detail implementasi dalam Pendahuluan, API Kunci untuk detail implementasi dalam API Kunci, dan Perangkat untuk detail implementasi dalam Perangkat.