startSubtitle method
@valid since 3.52
@detail api
@author qiaoxingwang
@brief 识别或翻译房间内所有用户的语音,形成字幕。
调用该方法时,可以在 SubtitleMode{@link #SubtitleMode} 中选择语音识别或翻译模式。如果选择识别模式,语音识别文本会通过 onSubtitleMessageReceived{@link #IRTCRoomEventHandler#onSubtitleMessageReceived} 事件回调给你;
如果选择翻译模式,你会同时收到两个 onSubtitleMessageReceived{@link #IRTCRoomEventHandler#onSubtitleMessageReceived} 回调,分别包含字幕原文及字幕译文。
调用该方法后,你会收到 onSubtitleStateChanged{@link #IRTCRoomEventHandler#onSubtitleStateChanged} 回调,通知字幕是否开启。
@param subtitleConfig 字幕配置信息。参看 SubtitleConfig{@link #SubtitleConfig}。
@return
- 0: 成功。
- < 0: 失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。
@note
- 使用字幕功能前,你需要在 RTC 控制台 开启实时字幕功能。
- 如果你需要使用流式语音识别模式,你应在 语音技术控制台 创建流式语音识别应用。创建时,服务类型应选择 流式语音识别,而非 音视频字幕生成。创建后,在 RTC 控制台 上启动流式语音识别,并填写创建语音技术应用时获取的相关信息,包括:APP ID,Access Token,和 Cluster ID。
- 如果你需要使用实时语音翻译模式,你应开通机器翻译服务,参考 开通服务。完成开通后,在 RTC 控制台 上启用实时语音翻译模式。
- 此方法需要在进房后调用。
- 如需指定源语言,你需要在调用 joinRoom 接口进房时,通过 extraInfo 参数传入格式为"语种英文名": "语种代号" JSON 字符串,例如设置源语言为英文时,传入 "source_language": "en"。如未指定源语言,SDK 会将系统语种设定为源语言。如果你的系统语种不是中文、英文和日文,此时 SDK 会自动将中文设为源语言。
- 识别模式下,你可以传入 RTC 控制台上预设或自定义的语种英文名和语种代号。识别模式下支持的语言参看识别模式语种支持。
- 翻译模式下,你需要传入机器翻译规定的语种英文名和语种代号。翻译模式下支持的语言及对应的代号参看翻译模式语言支持。
Implementation
Future<int?> startSubtitle(SubtitleConfig subtitleConfig) async {
$a() => ($instance as $p_a.RTCRoom)
.startSubtitle(unpackObject<$p_a.SubtitleConfig>(subtitleConfig));
$i() => ($instance as $p_i.ByteRTCRoom).startSubtitle(
unpackObject<$p_i.ByteRTCSubtitleConfig>(subtitleConfig));
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}