Interactive Canvas 작업에서 다음 콜백을 구현할 수 있습니다.
onUpdate()
onUpdate()
콜백은 웹훅의 데이터를 웹 앱으로 전달하여 업데이트합니다.
웹 앱을 적절하게
작성할 수 있습니다 이 콜백은
Interactive Canvas 개발의 처리 모델입니다.
onUpdate()
에 관한 자세한 내용은 다음을 참고하세요.
데이터를 전달하여 웹 앱 업데이트
onTtsMark()
onTtsMark()
콜백은 맞춤 <mark>
태그가
음성 합성 마크업 언어 (SSML)
TTS (텍스트 음성 변환)가 진행되는 동안 사용자에게 음성으로 안내합니다. 다음과 같은 작업을 할 수 있습니다.
서버 측 및 클라이언트 측 처리 개발에서 모두 onTtsMark()
사용
모델을 학습시키는 작업도
반복해야 합니다
다음 스니펫에서 onTtsMark()
는 웹 앱의 애니메이션을 동기화합니다.
를 해당 TTS 출력으로 변환합니다. 작업이 사용자에게 '죄송합니다.
"잃어버렸다고" 웹 앱이 올바른 단어의 철자를 알려주고
있습니다.
다음 예시에서 웹훅 핸들러 revealWord
에는
게임에서 졌을 때 사용자에 대한 응답에 다음과 같이 표시합니다.
자바스크립트
… app.handle('revealWord', conv => { conv.add(new Simple(`<speak>Sorry, you lost.<mark name="REVEAL_WORD"/> The word is ${conv.session.params.word}.</speak>`)); conv.add(new Canvas()); }); …
그러면 다음 코드 스니펫은 onTtsMark()
콜백을 등록하고
마크의 이름을 지정하고 revealCorrectWord()
함수를 실행합니다. 이 함수는
있습니다.
자바스크립트
… setCallbacks() { // declare Assistant Canvas Action callbacks const callbacks = { onTtsMark(markName) { if (markName === 'REVEAL_WORD') { // display the correct word to the user that.revealCorrectWord(); } }, } callbacks.onUpdate.bind(this); } …
onInputStatusChanged()
onInputStatusChanged()
콜백은 입력 상태가 변경되면 알려줍니다.
합니다. 입력 상태 변경은
마이크가 열리고 닫히거나 어시스턴트가 쿼리를 처리하는 동안 이
다음과 같은 이벤트가 발생하면 입력 상태가 변경될 수 있습니다.
- 작업에 대해 말하는 사용자
- Android Google 검색 앱 (AGSA)에 사용자가 입력하는 텍스트
sendTextQuery()
API를 사용하여 작업에 텍스트 쿼리를 보내는 웹 앱- 홈 스토리지 및 기타 어시스턴트 이벤트에 쓰는 작업
이 콜백의 기본 사용 사례는 작업을 파악할 수 있습니다. 예를 들어 사용자가 양방향 콘텐츠를 플레이하는 경우 캔버스 게임을 실행하고 마이크를 열면 사용자가 게임을 일시중지하고 말하고 있습니다. 마이크가 열릴 때까지 기다렸다가 어시스턴트가 수신되었는지 확인합니다.
이 API는 다음 상태를 보고합니다.
LISTENING
- 마이크가 열려 있음을 나타냅니다.IDLE
- 마이크가 닫혔음을 나타냅니다.PROCESSING
- 어시스턴트가 현재 쿼리를 실행 중임을 나타냅니다. 마이크가 닫혀 있습니다.
API는 상태가 변경될 때마다 작업에 입력 상태를 보고합니다.
상태 간 전환은 가능하지만 일반적인 흐름은 다음과 같습니다.
IDLE
>LISTENING
>PROCESSING
>IDLE
: 사용자가 질문을 하면 마이크가 종료됩니다.IDLE
>PROCESSING
>IDLE
- 웹 앱이sendTextQuery()
API를 사용합니다. Action에 텍스트 쿼리를 보냅니다.IDLE
>LISTENING
>IDLE
- 사용자가 마이크를 열지만 질문을 할 수 있습니다
작업에서 이 기능을 사용하려면 웹 앱에 onInputStatusChanged()
를 추가하세요.
다음 스니펫에 나와 있습니다.
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
}
onInputStatusChanged()
콜백은 단일 enum 매개변수를 다시 전달합니다.
inputStatus
입니다. 이 값을 확인하면 현재 입력 상태를 볼 수 있습니다. 이
inputStatus
는 LISTENING
, PROCESSING
, IDLE
일 수 있습니다.
다음으로, 다음과 같이 callbacks
객체에 onInputStatusChanged()
를 추가하여 등록합니다.
다음 스니펫에 나와 있습니다.
/**
* Register all callbacks used by the Interactive Canvas Action
* executed during game creation time.
*/
setCallbacks() {
const that = this;
// Declare the Interactive Canvas action callbacks.
const callbacks = {
onUpdate(data) {
console.log('Received data', data);
},
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
},
};
// Called by the Interactive Canvas web app once web app has loaded to
// register callbacks.
this.canvas.ready(callbacks);
}
}