答题器 API
课堂答题功能(老师发题/学生提交/统计查询)。
API 参考
getQuizStat()
查询答题统计(老师端,关闭答题后调用)。
| 参数 | 类型 | 说明 |
|---|---|---|
| questionId | string | 题目 ID |
返回值: Promise<TResult<QuizStat>>
startQuiz()
发起答题(老师端)。所有学生收到 TEvent.QUESTION_BEGIN 事件并进入答题状态。
状态由 state.quizStatus$ / state.currentQuizId$ 反映;学生端通过 submitAnswer() 提交。
| 参数 | 类型 | 说明 |
|---|---|---|
| param | StartQuizParam | 答题参数(题目 ID、类型、选项数量、答题时长等) |
返回值: Promise<TResult<void>>
示例:
ts
await classroom.startQuiz({
questionId: `q_${Date.now()}`, // 业务自定义题目 ID / business-defined ID
type: 1, // 题型(业务约定)/ question type (business-defined)
optionNumber: 4, // ABCD 四选项 / four options
duration: 60, // 60 秒答题 / 60s timer
});stopQuiz()
关闭答题(老师端),关闭后可调用 getQuizStat() 查看统计。
| 参数 | 类型 | 说明 |
|---|---|---|
| questionId | string | 要关闭的题目 ID |
返回值: Promise<TResult<void>>
示例:
ts
await classroom.stopQuiz('q_001');
const stat = await classroom.getQuizStat('q_001');
if (stat.ok) renderQuizResult(stat.data);submitAnswer()
提交答案(学生端)。
| 参数 | 类型 | 说明 |
|---|---|---|
| questionId | string | 题目 ID(来自 TEvent.QUESTION_BEGIN payload) |
| answer | string | 答案内容(选择题:选项 ID 如 'A'、'AB';主观题:自由文本) |
返回值: Promise<TResult<void>>
示例:
ts
classroom.on(TEvent.QUESTION_BEGIN, async ({ questionId }) => {
const userChoice = await getUserAnswer();
await classroom.submitAnswer(questionId, userChoice); // 例如 'A'
});