|
|
@@ -13,7 +13,11 @@ import styles from "./index.module.scss"
|
|
|
|
|
|
// 导入SDK核心模块
|
|
|
import { SttSdk } from "../../../packages/stt-sdk-core/src"
|
|
|
-import type { ISttManagerAdapter, IRtmManagerAdapter } from "../../../packages/stt-sdk-core/src"
|
|
|
+import type {
|
|
|
+ ISttManagerAdapter,
|
|
|
+ IRtmManagerAdapter,
|
|
|
+ IRtcManagerAdapter,
|
|
|
+} from "../../../packages/stt-sdk-core/src"
|
|
|
|
|
|
const { Title, Text } = Typography
|
|
|
|
|
|
@@ -25,8 +29,10 @@ const SdkTestPage = () => {
|
|
|
const [sdk, setSdk] = useState<SttSdk | null>(null)
|
|
|
const [sttManager, setSttManager] = useState<ISttManagerAdapter | null>(null)
|
|
|
const [rtmManager, setRtmManager] = useState<IRtmManagerAdapter | null>(null)
|
|
|
+ const [rtcManager, setRtcManager] = useState<IRtcManagerAdapter | null>(null)
|
|
|
const [isSdkInitialized, setIsSdkInitialized] = useState(false)
|
|
|
const [isSttManagerInitialized, setIsSttManagerInitialized] = useState(false)
|
|
|
+ const [isRtcManagerJoined, setIsRtcManagerJoined] = useState(false)
|
|
|
const [isTranscriptionActive, setIsTranscriptionActive] = useState(false)
|
|
|
const [transcriptionStatus, setTranscriptionStatus] = useState<string>("idle")
|
|
|
const [testResults, setTestResults] = useState<string[]>([])
|
|
|
@@ -77,13 +83,15 @@ const SdkTestPage = () => {
|
|
|
// 创建管理器 - 先创建RTM管理器,然后创建STT管理器并传入RTM管理器
|
|
|
const rtmManager = newSdk.createRtmManager()
|
|
|
const sttManager = newSdk.createSttManager(rtmManager)
|
|
|
+ const rtcManager = newSdk.createRtcManager()
|
|
|
|
|
|
// 监听RTM管理器的事件
|
|
|
rtmManager.on("sttDataChanged", onSttDataChanged)
|
|
|
|
|
|
setSttManager(sttManager)
|
|
|
setRtmManager(rtmManager)
|
|
|
- addTestLog("✅ STT和RTM管理器创建成功")
|
|
|
+ setRtcManager(rtcManager)
|
|
|
+ addTestLog("✅ STT、RTM和RTC管理器创建成功")
|
|
|
|
|
|
messageApi.success("SDK初始化成功")
|
|
|
} catch (error) {
|
|
|
@@ -176,6 +184,60 @@ const SdkTestPage = () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 加入RTC频道
|
|
|
+ const joinRtcChannel = async () => {
|
|
|
+ if (!rtcManager) return
|
|
|
+
|
|
|
+ try {
|
|
|
+ const values = form.getFieldsValue()
|
|
|
+ addTestLog("开始加入RTC频道...")
|
|
|
+
|
|
|
+ await rtcManager.join({
|
|
|
+ channel: values.channel,
|
|
|
+ userId: genRandomUserId(),
|
|
|
+ })
|
|
|
+
|
|
|
+ setIsRtcManagerJoined(true)
|
|
|
+ addTestLog("✅ RTC频道加入成功")
|
|
|
+ messageApi.success("RTC频道加入成功")
|
|
|
+ } catch (error) {
|
|
|
+ addTestLog(`❌ RTC频道加入失败: ${error}`)
|
|
|
+ messageApi.error(`RTC频道加入失败: ${error}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建音视频轨道
|
|
|
+ const createRtcTracks = async () => {
|
|
|
+ if (!rtcManager) return
|
|
|
+
|
|
|
+ try {
|
|
|
+ addTestLog("开始创建音视频轨道...")
|
|
|
+
|
|
|
+ await rtcManager.createTracks()
|
|
|
+ addTestLog("✅ 音视频轨道创建成功")
|
|
|
+ messageApi.success("音视频轨道创建成功")
|
|
|
+ } catch (error) {
|
|
|
+ addTestLog(`❌ 音视频轨道创建失败: ${error}`)
|
|
|
+ messageApi.error(`音视频轨道创建失败: ${error}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发布音视频流
|
|
|
+ const publishRtcStream = async () => {
|
|
|
+ if (!rtcManager) return
|
|
|
+
|
|
|
+ try {
|
|
|
+ addTestLog("开始发布音视频流...")
|
|
|
+
|
|
|
+ await rtcManager.publish()
|
|
|
+ addTestLog("✅ 音视频流发布成功")
|
|
|
+ messageApi.success("音视频流发布成功")
|
|
|
+ } catch (error) {
|
|
|
+ addTestLog(`❌ 音视频流发布失败: ${error}`)
|
|
|
+ messageApi.error(`音视频流发布失败: ${error}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 清理资源
|
|
|
const cleanup = async () => {
|
|
|
try {
|
|
|
@@ -338,6 +400,29 @@ const SdkTestPage = () => {
|
|
|
>
|
|
|
查询状态
|
|
|
</Button>
|
|
|
+
|
|
|
+ <Divider />
|
|
|
+
|
|
|
+ <Button
|
|
|
+ onClick={joinRtcChannel}
|
|
|
+ disabled={!isSdkInitialized || isRtcManagerJoined}
|
|
|
+ block
|
|
|
+ >
|
|
|
+ {isRtcManagerJoined ? "✅ RTC频道已加入" : "加入RTC频道"}
|
|
|
+ </Button>
|
|
|
+
|
|
|
+ <Button onClick={createRtcTracks} disabled={!isRtcManagerJoined} block>
|
|
|
+ 创建音视频轨道
|
|
|
+ </Button>
|
|
|
+
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ onClick={publishRtcStream}
|
|
|
+ disabled={!isRtcManagerJoined}
|
|
|
+ block
|
|
|
+ >
|
|
|
+ 发布音视频流
|
|
|
+ </Button>
|
|
|
</Space>
|
|
|
|
|
|
<Divider />
|
|
|
@@ -418,6 +503,7 @@ const SdkTestPage = () => {
|
|
|
<li>点击"初始化 SDK"</li>
|
|
|
<li>初始化 STT 管理器和加入 RTM 频道</li>
|
|
|
<li>开始/停止转录测试</li>
|
|
|
+ <li>加入 RTC 频道并测试音频传输</li>
|
|
|
<li>查看测试日志了解详细结果</li>
|
|
|
</ol>
|
|
|
|