seilon_voice_plugin 0.1.0 copy "seilon_voice_plugin: ^0.1.0" to clipboard
seilon_voice_plugin: ^0.1.0 copied to clipboard

Flutter bridge for the Seilon BLE recorder SDK on Android and iOS.

seilon_voice_plugin #

Seilon BLE SDK 1.0.0 的 Flutter 双端桥接。支持 Android API 24+ 与 iOS 15+,提供扫描连接、绑定、录音设备控制、Wi-Fi/TCP、文件传输、日志和原始 OPUS 帧。

初始化与事件 #

final plugin = SeilonVoicePlugin();

await plugin.initialize(
  config: const SeilonSdkConfig(
    commandTimeout: Duration(seconds: 8),
  ),
);

final subscription = plugin.events.listen((event) {
  switch (event) {
    case SeilonDeviceFoundEvent(:final device):
      print('${device.name}: ${device.id}');
    case SeilonAudioFrameEvent(:final opus):
      print('OPUS ${opus.length} bytes');
    default:
      break;
  }
});

未传入的配置字段由原生 SDK 使用内置默认值;默认 accountId 不进入 Dart 层。初始化后若要更换配置,先调用 close()

扫描、连接和会话 #

if (defaultTargetPlatform == TargetPlatform.android) {
  final permission = await plugin.requestPermissions(
    SeilonPermissionOperation.scan,
  );
  if (!permission.granted) return;
}

await plugin.startScan(duration: const Duration(seconds: 30));
final session = await plugin.connect(deviceId);

await session.beginBind();
await session.handshake();
await session.completeBind();

final device = await session.queryDeviceInfo();
await session.startRecording();
await session.stopRecording();

connect() 返回的 SeilonRecorderSession 带有原生会话令牌。设备重连后,旧对象会以 SeilonErrorCode.notConnected 拒绝操作,不会误操作新会话。

失败调用抛出 SeilonSdkException

try {
  await session.queryFiles(1);
} on SeilonSdkException catch (error) {
  print('${error.code.name}: ${error.message}');
}

平台配置 #

Android #

  • 最低 API 24。
  • 插件随包携带 SDK 1.0.0 本地 Maven 制品;其中的 AAR SHA256 为 351ca635d26951f37ee21e3be4336e5cf3f27c0fce0c28e23d4d34aa22a9a700
  • AAR Manifest 声明蓝牙、定位、Wi-Fi、网络和 TCP 所需权限。
  • 调用 checkPermissionsrequestPermissions 处理 Android 运行时权限;插件不会打开已关闭的蓝牙或 Wi-Fi。

iOS #

  • 最低 iOS 15,支持 CocoaPods 与 Swift Package Manager。
  • 宿主 Info.plist 必须提供:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>用于扫描并连接 Seilon 录音设备</string>
<key>NSLocalNetworkUsageDescription</key>
<string>用于连接 Seilon 录音设备提供的本地 TCP 服务</string>
  • 连接设备热点时,为 App ID 与 target 启用 Hotspot Configuration capability。无需 Access Wi-Fi Information。

生命周期与约束 #

  • 一个插件实例只管理一个原生 SDK 和一个设备会话。
  • SDK 不自动绑定、握手、查询、重连或切换 BLE/TCP 通道。
  • 同一会话同时只允许一个等待设备回复的普通操作;并发调用会返回 busy
  • downloadFile 返回本地路径。取消后只有显式调用 resumeFileDownload 才会续传。
  • 页面或业务容器退出时取消事件订阅并调用 close()
  • SDK 不提供 OTA、DNR、ASR、分享、OPUS 播放或 OPUS/WAV 转换。

完整功能入口和受控删除/关机测试流程见 example/

0
likes
0
points
266
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter bridge for the Seilon BLE recorder SDK on Android and iOS.

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on seilon_voice_plugin

Packages that implement seilon_voice_plugin