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 说明。