Skip to content

Java SDK 接入 ​

在可信的 Java 进程中连接设备,接收音视频帧、保存 MP4 / JPEG,并收发消息。Java SDK 向应用回调媒体帧,不提供麦克风采集、音视频发布或自动播放窗口。

接入要求 ​

  • 生产运行环境为 JDK 21。公开 API 使用 Java 8 字节码,不能据此将 Java 8 作为受支持运行环境。
  • macOS 11.5 及以上 arm64,或 Linux glibc x86_64。Linux 需提供 GLIBC_2.35、GLIBCXX_3.4.30 和 CXXABI_1.3.9;不支持 Alpine / musl。
  • 进程能安全保存 Access Key ID / Secret Key ID,cache 使用可写的绝对路径。不要将长期密钥分发到不可信终端。

消费预编译 Native 包,无需 Android SDK、CMake、C++ 编译器或全局 FFmpeg。

添加 Maven 依赖 ​

以下示例适用于 Linux x86_64。Apple Silicon macOS 将 classifier 改为 macos-aarch64;API JAR 与 Native JAR 必须同版,并一起进入应用运行时 classpath。

xml
<repositories>
  <repository>
    <id>tirtc</id>
    <url>https://repo-sdk.tange-ai.com/repository/maven-releases/</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>com.tange.ai</groupId>
    <artifactId>tirtc-server</artifactId>
    <version>2.6.2</version>
  </dependency>
  <dependency>
    <groupId>com.tange.ai</groupId>
    <artifactId>tirtc-server</artifactId>
    <version>2.6.2</version>
    <classifier>linux-x86_64</classifier>
    <scope>runtime</scope>
  </dependency>
</dependencies>

初始化与连接 ​

API 从 com.tange.ai.tirtc 导入。用 ClientOptions.builder() 设置 appId、accessKeyId、accessKeySecret 和绝对 cacheDir,再创建 RtcClient。同一进程只能有一个 RTC Client,一个 Client 可以管理多条连接。

Java SDK 使用 Access Key 托管鉴权,connection.connect(deviceId) 不接收 Token。初次连接结果通过 CompletableFuture<Void> 返回,后续断线通过 Connection.Listener 通知。完整示例见 Java API 说明。

运行与排查 ​

  • Native 加载失败:确认 JDK、系统和架构受支持,并包含同版 Native classifier JAR;无需配置全局动态库目录。
  • Future 异常:查看 ExecutionException.getCause() 中的 TiRtcException。
  • 连接成功但无帧:确认设备正在送流,且 Output 与订阅使用相同 Stream ID。

RtcClient、Connection 和 Output 都支持 AutoCloseable。按 Output、Connection、Client 的逆序关闭;不要在它们的回调中同步关闭对象。具体约束见 Java API 说明。

TiRTC 开发文档