@capgo/capacitor-stream-call

中文文档
8.0.80发布于 2026/11/09MPL-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 6155

使用 https://getstream.io/ (中文(简体) ) SDK 执行 Capacitor 调用

中文使用文档
文档目录40 节
  1. *免费开始*
  2. 主要特点
  3. 文档
  4. 兼容性
  5. 安装
  6. 配置
  7. iOS 设置
  8. Android 设置
  9. 显示呼叫者信息
  10. 获取呼叫信息
  11. 呼叫者信息结构
  12. 实例
  13. API 密码
  14. 登录(...)
  15. 登录( c)
  16. 调用(...)
  17. 端点呼叫( C)
  18. 加入呼叫(...)
  19. set 麦克风
  20. 设置 CameraEnabled (...)
  21. 添加倾听器( “ callEvent, ” )..
  22. 添加收听器('incoming Call',...)
  23. 删除所有收听器( )
  24. 启用蓝牙 ()
  25. 接受呼叫( C)
  26. 拒绝呼叫( C)
  27. is CameraEnabled () (帮助)
  28. 获取呼叫状态( C)
  29. 获得 RingCall ()
  30. 切换视图( )
  31. 设置语法(...)
  32. 切换Camera(...)
  33. 获取CallInfo(...)
  34. 设置 DynamicStreamVideo Apikey (...)
  35. 获得DynamicStreamVideo Apikey ()
  36. 获取当前用户( C)
  37. 获取 PluginVersion ()
  38. 接口
  39. 类型异名
  40. 数字

@ capgo/ 电容器- spress- call

在您的 Capacitor app 中添加视频和音频调用Stream Video SDK , 包括 iOS 和 Android 上的接通呼叫处理和本地调用屏幕.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-stream-call 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/电容-流调用到我的电容软件上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-stream-call for Capacitor apps

主要特点

  • 会议数字 : login() 财务报告和审定财务报表 logout() 带有流式用户符号.
  • 电话数字 : call(), (中文(简体) ), acceptCall(), (中文(简体) ), rejectCall() 财务报告和审定财务报表 endCall(),与 callEvent 财务报告和审定财务报表 incomingCall 听众.
  • 媒体控制数字 : setMicrophoneEnabled(), (中文(简体) ), setCameraEnabled(), (中文(简体) ), switchCamera() 财务报告和审定财务报表 setSpeaker()。 。 。 .
  • 调用信息数字 : getCallStatus(), (中文(简体) ), getCallInfo() 财务报告和审定财务报表 getCurrentUser()。 。 。 .
  • 动态 API 密钥数字 : setDynamicStreamVideoApikey() 存储本地创建客户端时使用的 Stream API 密钥.
  • 平台: iOS,Android和Web. 互联网档案馆的存檔,存档日期2013-12-02. Web使用Stream视频客户端.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/流调/

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1❌
页:1页:1❌

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-stream-call` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-stream-call
npx cap sync

配置

iOS 设置

1. API 密钥配置

添加您的流视频 API 密钥到 ios/App/App/Info.plist数字 :

<dict>
  <key>CAPACITOR_STREAM_VIDEO_APIKEY</key>
  <string>your_api_key_here</string>
  <!-- other keys -->
</dict>

2. 本地化(可选)

支持多种语言:

  1. 添加本地化文件到您的 Xcode 项目 :

    • /App/App/en.lproj/Localizable.strings
    • /App/App/en.lproj/Localizable.stringsdict
  2. 添加翻译 Localizable.strings数字 :

"stream.video.call.incoming" = "Incoming call from %@";
"stream.video.call.accept" = "Accept";
"stream.video.call.reject" = "Reject";
"stream.video.call.hangup" = "Hang up";
"stream.video.call.joining" = "Joining...";
"stream.video.call.reconnecting" = "Reconnecting...";
  1. 配置您的本地化 AppDelegate.swift数字 :
import StreamVideo

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        Appearance.localizationProvider = { key, table in
            Bundle.main.localizedString(forKey: key, value: nil, table: table)
        }
        return true
    }
}

Android 设置

1. API 密钥配置

添加您的流视频 API 密钥到 android/app/src/main/res/values/strings.xml数字 :

<string name="CAPACITOR_STREAM_VIDEO_APIKEY">your_api_key_here</string>

2. 主要活动配置

修改您的 MainActivity.java 处理来电:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  // Enable activity to show over lock screen
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O_MR1) {
    setShowWhenLocked(true);
    setTurnScreenOn(true);
  } else {
    getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | android.view.WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
  }
}

3. 应用程序类配置

创建或修改您的应用程序类以初始化插件 :

import ee.forgr.capacitor.streamcall.StreamCallPlugin;

@Override
public void onCreate() {
  super.onCreate();
  
  // Initialize Firebase
  com.google.firebase.FirebaseApp.initializeApp(this);
  
  // Pre-initialize StreamCall plugin
  try {
    StreamCallPlugin.preLoadInit(this, this);
  } catch (Exception e) {
    Log.e("App", "Failed to pre-initialize StreamVideo Plugin", e);
  }
}

说明: 如果你没有应用类,你需要创建一个 并在你的 AndroidManifest.xml 与 android:name=".YourApplicationClass"。 。 。 .

4. 本地化(可选)

为不同语言添加字符串资源 :

默认( E)values/strings.xml:

<resources>
    <string name="stream_video_call_incoming">Incoming call from %1$s</string>
    <string name="stream_video_call_accept">Accept</string>
    <string name="stream_video_call_reject">Reject</string>
    <string name="stream_video_call_hangup">Hang up</string>
    <string name="stream_video_call_joining">Joining...</string>
    <string name="stream_video_call_reconnecting">Reconnecting...</string>
</resources>

法语values-fr/strings.xml:

<resources>
    <string name="stream_video_call_incoming">Appel entrant de %1$s</string>
    <string name="stream_video_call_accept">Accepter</string>
    <string name="stream_video_call_reject">Refuser</string>
    <string name="stream_video_call_hangup">Raccrocher</string>
    <string name="stream_video_call_joining">Connexion...</string>
    <string name="stream_video_call_reconnecting">Reconnexion...</string>
</resources>

显示呼叫者信息

接收来电时,您可以访问呼叫者信息,包括姓名,用户ID,以及配置图像. 此信息会自动从调用数据中取出并传递到事件系统.

获取呼叫信息

电话信息有两种方式:

1. 通过呼叫活动

这个 callEvent 听众为来电提供呼叫信息 :

StreamCall.addListener('callEvent', (event) => {
  if (event.state === 'ringing' && event.caller) {
    console.log('Incoming call from:', event.caller.name || event.caller.userId);
    console.log('Caller image:', event.caller.imageURL);
    // Update your UI to show caller information
    showIncomingCallUI(event.caller);
  }
});

2. 通过来电事件(Android锁屏)

这个 incomingCall 收听者还包括呼叫者信息:

StreamCall.addListener('incomingCall', (payload) => {
  if (payload.caller) {
    console.log('Lock-screen call from:', payload.caller.name || payload.caller.userId);
    // Update your lock-screen UI
    updateLockScreenUI(payload.caller);
  }
});

呼叫者信息结构

interface CallMember {
  userId: string;      // User ID (always present)
  name?: string;       // Display name (optional)
  imageURL?: string;   // Profile image URL (optional)
  role?: string;       // User role (optional)
}

实例

以下是如何执行一个有呼叫者信息的适当来电屏幕:

export class CallService {
  private callerInfo: CallMember | null = null;

  constructor() {
    this.setupCallListeners();
  }

  private setupCallListeners() {
    StreamCall.addListener('callEvent', (event) => {
      if (event.state === 'ringing') {
        this.callerInfo = event.caller || null;
        this.showIncomingCallScreen();
      } else if (event.state === 'joined' || event.state === 'left') {
        this.callerInfo = null;
        this.hideIncomingCallScreen();
      }
    });

    // Android lock-screen support
    if (Capacitor.getPlatform() === 'android') {
      StreamCall.addListener('incomingCall', (payload) => {
        this.callerInfo = payload.caller || null;
        this.showLockScreenIncomingCall();
      });
    }
  }

  private showIncomingCallScreen() {
    const callerName = this.callerInfo?.name || 'Unknown Caller';
    const callerImage = this.callerInfo?.imageURL || 'default-avatar.png';
    
    // Update your UI components
    document.getElementById('caller-name').textContent = callerName;
    document.getElementById('caller-image').src = callerImage;
    document.getElementById('incoming-call-screen').style.display = 'block';
  }
}

API 密码

登录(...)

login(options: LoginOptions) => Promise<SuccessResponse>

登录到流视频服务

参数类型说明
optionsLoginOptions- 登录配置

回返情况: Promise<SuccessResponse>


登录( c)

logout() => Promise<SuccessResponse>

从流视频服务登录

回返情况: Promise<SuccessResponse>


调用(...)

call(options: CallOptions) => Promise<SuccessResponse>

启动给另一个用户的呼叫

参数类型说明
optionsCallOptions- 调用配置

回返情况: Promise<SuccessResponse>


端点呼叫( C)

endCall() => Promise<SuccessResponse>

结束当前呼叫

回返情况: Promise<SuccessResponse>


加入呼叫(...)

joinCall(options: { callId: string; callType: string; }) => Promise<SuccessResponse>

加入已有的调用

参数类型说明
options{ callId: string; callType: string; }- 麦克风状态

回返情况: Promise<SuccessResponse>


set 麦克风

setMicrophoneEnabled(options: { enabled: boolean; }) => Promise<SuccessResponse>

启用或禁用麦克风

参数类型说明
options{ enabled: boolean; }- 麦克风状态

回返情况: Promise<SuccessResponse>


设置 CameraEnabled (...)

setCameraEnabled(options: { enabled: boolean; }) => Promise<SuccessResponse>

启用或禁用相机

参数类型说明
options{ enabled: boolean; }- 相机状态

回返情况: Promise<SuccessResponse>


添加倾听器( “ callEvent, ” )..

addListener(eventName: 'callEvent', listenerFunc: (event: CallEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为呼叫事件添加听众

参数类型说明
eventName'callEvent'- 要聆听的活动名称
listenerFunc(event: CallEvent) => void- 回调函数

回返情况: Promise<{ remove: () => Promise<void>; }>


添加收听器('incoming Call',...)

addListener(eventName: 'incomingCall', listenerFunc: (event: IncomingCallPayload) => void) => Promise<{ remove: () => Promise<void>; }>

监听锁屏接通电话(仅限Android). 在用户互动前通过全屏意图显示应用程序时被解除.

参数类型
eventName'incomingCall'
listenerFunc(event: IncomingCallPayload) => void

回返情况: Promise<{ remove: () => Promise<void>; }>


删除所有收听器( )

removeAllListeners() => Promise<void>

删除全部事件听众


启用蓝牙 ()

enableBluetooth() => Promise<SuccessResponse>

启用蓝牙音频

回返情况: Promise<SuccessResponse>


接受呼叫( C)

acceptCall() => Promise<SuccessResponse>

接受接听的电话

回返情况: Promise<SuccessResponse>


拒绝呼叫( C)

rejectCall() => Promise<SuccessResponse>

拒绝来电

回返情况: Promise<SuccessResponse>


is CameraEnabled () (帮助)

isCameraEnabled() => Promise<CameraEnabledResponse>

检查是否启用相机

回返情况: Promise<CameraEnabledResponse>


获取呼叫状态( C)

getCallStatus() => Promise<CallEvent>

获取当前呼叫状态

回返情况: Promise<CallEvent>


获得 RingCall ()

getRingingCall() => Promise<CallEvent>

获取当前铃声

回返情况: Promise<CallEvent>


切换视图( )

toggleViews() => Promise<{ newLayout: StreamCallLayout; }>

通过可用视频布局循环

回返情况: Promise<{ newLayout: StreamCallLayout; }>


设置语法(...)

setSpeaker(options: { name: string; }) => Promise<SuccessResponse>

打开扬声器

参数类型说明
options{ name: string; }- 扬声器名称

回返情况: Promise<SuccessResponse>


切换Camera(...)

switchCamera(options: { camera: 'front' | 'back'; }) => Promise<SuccessResponse>

切换相机

参数类型说明
options{ camera: 'front' | 'back'; }- 要切换到的相机

回返情况: Promise<SuccessResponse>


获取CallInfo(...)

getCallInfo(options: { callId: string; }) => Promise<CallEvent>

获取一个活动电话的详细信息, 包括呼叫者的详细信息

参数类型说明
options{ callId: string; }- 包含呼叫ID的选项

回返情况: Promise<CallEvent>


设置 DynamicStreamVideo Apikey (...)

setDynamicStreamVideoApikey(options: { apiKey: string; }) => Promise<SuccessResponse>

设置一个动态流视频 API 密钥来覆盖静态

参数类型说明
options{ apiKey: string; }- 要设置的 API 密钥

回返情况: Promise<SuccessResponse>


获得DynamicStreamVideo Apikey ()

getDynamicStreamVideoApikey() => Promise<DynamicApiKeyResponse>

获取当前设置的动态流视频 API 密钥

回返情况: Promise<DynamicApiKeyResponse>


获取当前用户( C)

getCurrentUser() => Promise<CurrentUserResponse>

获取当前用户的信息

回返情况: Promise<CurrentUserResponse>


获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地 Capacitor 插件版本

回返情况: Promise<{ version: string; }>


接口

成功答复

Prop类型说明
successboolean操作是否成功
callIdstring

登录选项

Prop类型说明
tokenstring流视频 API 令牌
userIdstring当前用户的用户ID
namestring显示当前用户的名称
imageURLstring当前用户的可选可变 URL
apiKeystring流视频 API 密钥
magicDivIdstring显示视频的 HTML 元素的标识
pushNotificationsConfigPushNotificationsConfig

推进通知

Prop类型
pushProviderNamestring
voipProviderNamestring

调用选项

Prop类型说明
userIdsstring[]打电话者的用户身份
typeCallType呼叫类型, 默认为“ 默认 ”
ringboolean是否按下另一个用户, 默认为真
teamstring要呼叫的团队名称
videoboolean是否启用视频启动调用, 默认为虚假
customRecord< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >自定义数据传递给呼叫

调用事件

Prop类型说明
callIdstring电话号码
stateCallState呼叫现状
userIdstring触发事件的电话参与者的用户代号
reasonstring更改呼叫状态的理由(如适用)
callerCallMember关于打电话者的信息(接听电话)
membersCallMember[]呼叫成员名单
customRecord< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >
countnumber

呼叫状态

呼叫状态 是调用当前状态 被SFU看见了.

Prop类型说明
participantsParticipant[]参与者是该电话的参与者名单。 在大叫中,可以缩短名单,在这种情况下,参与者名单中包含的参与者少于在参与者 计数中返回的计数. 匿名与会者是: 没有 列入清单.
startedAtTimestamp启动时间是呼叫会话实际开始的时间.
participantCountParticipantCount参与者 计数包含计数摘要.
pinsPin[]呼叫中的针头列表。 平板按下行顺序排列(最重要的第一).

参加者

在电话里的人

Prop类型说明
userIdstring
sessionIdstring
publishedTracksTrackType[]轨迹 id 映射到轨迹类型
joinedAtTimestamp
trackLookupPrefixstring
connectionQualityConnectionQuality
isSpeakingboolean
isDominantSpeakerboolean
audioLevelnumber
namestring
imagestring
customStruct
rolesstring[]

时间戳

A 类 时间戳 代表独立于任何时区或当地时间点 日历,编码为秒数和分数秒数 纳秒分辨率。 计数时间是UTC午夜时段 1970年1月1日,在延长Gregorian日历中 格雷高历倒向了第一年.

所有分钟都是60秒长。 漏出秒数是"相思"的,所以不会跳跃 口译需要第二表,使用 24小时线性 涂鸦。 。 。 .

范围从0001-01-01T00:00:00Z到9999-12-31T23:59:99999999Z. 以 我们保证,我们可在此范围内进行改造 RFC (RFC ) (法语) 3339 (英语) 日期字符串.

实例

例1:计算 时间戳 从POSIX调用 time()。 。 。 .

<a href="#timestamp">Timestamp</a> timestamp;
timestamp.set_seconds(time(NULL));
timestamp.set_nanos(0);

示例2:计算 时间戳 从POSIX调用 gettimeofday()。 。 。 .

struct timeval tv;
gettimeofday(&tv, NULL);

<a href="#timestamp">Timestamp</a> timestamp;
timestamp.set_seconds(tv.tv_sec);
timestamp.set_nanos(tv.tv_usec * 1000);

例3:计算 时间戳 从 Win32 GetSystemTimeAsFileTime()。 。 。 .

FILETIME ft;
GetSystemTimeAsFileTime(&ft);
UINT64 ticks = (((UINT64)ft.dwHighDateTime) &lt;&lt; 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
// is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
<a href="#timestamp">Timestamp</a> timestamp;
timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

例4:计算 时间戳 从 Java 中 System.currentTimeMillis()。 。 。 .

long millis = System.currentTimeMillis();

<a href="#timestamp">Timestamp</a> timestamp = <a href="#timestamp">Timestamp</a>.newBuilder().setSeconds(millis / 1000)
    .setNanos((int) ((millis % 1000) * 1000000)).build();

例5:计算 时间戳 从 Java 中 Instant.now()。 。 。 .

Instant now = Instant.now();

<a href="#timestamp">Timestamp</a> timestamp =
    <a href="#timestamp">Timestamp</a>.newBuilder().setSeconds(now.getEpochSecond())
        .setNanos(now.getNano()).build();

例6:计算 时间戳 从现在的 Python.

timestamp = <a href="#timestamp">Timestamp</a>()
timestamp.GetCurrentTime()

JSON 绘图

在JSON格式中 时间戳 类型在 RFC 3339 (法语) 格式。 这就是 格式为“{年}-{月}-{日}T{小时}:{min}:{sec}[.{frac sec] 兹" 在 {年份} 总是用 {month} 、{day} 的四位数表示, {hour},{min},和{sec}各为零加到两位数 。 分数 秒,最多可达9位数(即可达1纳秒分辨率), 是可选的。 Z后缀表示时区 ("UTC"); 时区 需要时间。 原型3 JSON 序列器应始终使用世界协调时(如 (Z) 打印时 时间戳 类型和原型3 JSON 剖析器应为 能够同时接受协调世界时和其他时区(如冲抵所示).

例如:"2017-01-15T01:30:15.01Z"编码为15.01秒过去 协调世界时2017年1月15日01:30.

在 JavaScript 中,可以使用 标准 to ISO String () (中文(简体) ) 方法。 在Python,一个标准 datetime.datetime 对象可以转换 使用 strftime 与 时间格式 “%Y-%m-%dT%H:%M:%S.%fZ”。 同样,在爪哇,人们可以使用 乔达时间 ISODateTimeFormat.dateTime() 以获取一个能够以这种格式生成时间戳的材料.

Prop类型说明
secondsstring代表自Unix Epoch 1970-01-01T00:00Z起协调世界时时间的秒. 必须是从0001-01-01T00:00Z到9999-12-31T23:59:59Z包含.
nanosnumber在纳秒分辨率下为一秒的非负分. 带有分数的负二等值仍必须具有非负二等纳米值,在时间上可以向前计数. 一定是从0到999,999,999 包括.

结构

Struct 代表结构化数据值,由字段组成 哪个映射到动态输入值。 在某些语言中, Struct 可由本地代表支持。 例如,在 象JS一样的文字语言 对象。 详细情况一并介绍 与原始支持的语言.

JSON代表 Struct 是 JSON 对象.

Prop类型说明
fields{ [key: string]: Value; }动态输入值的无序映射 .

数值

Value 表示一个动态键入的值,可以是 无,一个数字,一个字符串,一个布尔,一个递归结构值,或者 数值列表。 价值的生产者预计将确定其中之一 变相. 没有任何变体表示错误.

JSON代表 Value 这是JSON值.

Prop类型
kind{ oneofKind: 'nullValue'; nullValue: NullValue; } | { oneofKind: 'numberValue'; numberValue: number; } | { oneofKind: 'stringValue'; stringValue: string; } | { oneofKind: 'boolValue'; boolValue: boolean; } | { oneofKind: 'structValue'; structValue: Struct; } | { oneofKind: 'listValue'; listValue: ListValue; } | { oneofKind: undefined; }

列表值

ListValue 是一个围绕一个重复的值域的包裹.

JSON代表 ListValue 是JSON阵列.

Prop类型说明
valuesValue[]重复的动态输入值域 .

参加人数

Prop类型说明
totalnumber该电话的参与者总数,包括匿名参与者.
anonymousnumber该电话匿名参与者总数.

键

Prop类型说明
userIdstring要标注的用户
sessionIdstring用户 sision id 针,如果不提供,则适用于所有会话

调用成员

Prop类型说明
userIdstring成员的用户身份
namestring显示用户名称
imageURLstring用户配置图像 URL
rolestring用户在呼叫中的作用

来电通话费

Prop类型说明
cidstring全称 CID( 如默认: 123)
type'incoming'事件类型( 目前始终为" 来" )
callerCallMember关于打电话者的信息
customRecord< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >自定义数据传递给呼叫
方法签署说明
获取 PluginVersion()QQ承诺QQ版本:字符串;QQ获取本地 Capacitor 插件版本

相机启用响应

Prop类型
enabledboolean

动态ApiKey响应

Prop类型说明
apiKeystring | null如果设置了动态 API 密钥, 则无效
hasDynamicKeyboolean目前是否设置了动态密钥

当前用户响应

Prop类型说明
userIdstring当前用户的用户ID
namestring显示当前用户的名称
imageURLstring当前用户的外观 URL
isLoggedInboolean用户是否正在登录

类型异名

调用类型

'default' | 'audio' | 'audio_room' | 'livestream' | 'development'

记录

构造 T 类型 K 的一组属性类型

{ [P in K]: T; }

呼叫状态

'idle' | 'ringing' | 'joining' | 'reconnecting' | 'joined' | 'leaving' | 'left' | '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'

串流呼叫拉尤特

'grid' | 'spotlight' | 'dynamic' | 'fullScreen' | 'fullscreen'

数字

音轨类型

成员数值
UNSPECIFIED0
AUDIO1
VIDEO2
SCREEN_SHARE3
SCREEN_SHARE_AUDIO4

连接质量

成员数值
UNSPECIFIED0
POOR1
GOOD2
EXCELLENT3

数值

成员数值说明
NULL_VALUE0虚值.

版本与发布记录

@capgo/capacitor-stream-call 共发布 193 个版本,首次发布于 2025/03/04;过去 12 个月发布了 92 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.0.80latest2026/11/09今天
8.0.792026/11/036 天前
8.0.782026/11/036 天前
8.0.772026/11/026 天前
8.0.762026/11/027 天前
8.0.752026/10/2614 天前

其他发布通道:next → 0.0.25-alpha.0。

关于 @capgo/capacitor-stream-call 的常见问题

@capgo/capacitor-stream-call 是什么?

使用 https://getstream.io/ (中文(简体) ) SDK 执行 Capacitor 调用

如何安装 @capgo/capacitor-stream-call?

在项目目录运行 npm install @capgo/capacitor-stream-call,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-stream-call 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-stream-call 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-stream-call 可以商用吗?

@capgo/capacitor-stream-call 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-stream-call 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-stream-call 在 2026/10/09 – 2026/11/07 这 30 天内被下载 6,155 次,日均约 205 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-stream-call 还在维护吗?

最新版本 8.0.80 发布于 2026/11/09(今天);至今共发布 193 个版本,其中过去 12 个月发布了 92 个;首次发布于 2025/03/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。