Share via


IAgentCharacterEx::Listen

[Microsoft 에이전트는 Windows 7을 기준으로 더 이상 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]

HRESULT Listen(
   long bListen  // listening mode flag
);

수신 대기 모드(음성 인식 입력)를 켜거나 끕니다.

  • 작업이 성공했음을 나타내는 S_OK 반환합니다.

bListen

수신 모드 플래그입니다. 이 매개 변수가 True이면 수신 모드가 켜집니다. False이면 수신 모드가 해제됩니다.

이 메서드를 True 로 설정하면 고정된 기간 동안 수신 대기 모드(음성 인식 켜기)를 사용할 수 있습니다. 제한 시간 값을 설정할 수는 없지만 제한 시간이 만료되기 전에 수신 대기 모드를 끌 수 있습니다. 또한 사용자(또는 다른 클라이언트)가 제한 시간이 만료되기 전에 메서드를 True 로 설정했기 때문에 수신 모드가 이미 설정되어 있으면 메서드가 성공하고 시간 초과를 다시 설정합니다. 그러나 사용자가 수신 대기 키를 누르고 있기 때문에 수신 모드가 이미 켜진 경우 메서드는 성공하지만 시간 제한은 무시되고 수신 대기 모드는 사용자의 수신 대기 키 상호 작용에 따라 종료됩니다.

이 메서드는 입력-활성 클라이언트에서 호출된 경우에만 성공합니다. 따라서 클라이언트가 최상위 문자의 활성 클라이언트가 아닌 경우 메서드가 실패합니다. 메서드를 False 로 설정하려고 하고 사용자가 수신 대기 키를 누르는 경우에도 메서드가 실패합니다. 문자의 언어 ID 설정과 일치하는 호환 가능한 음성 엔진이 없거나 사용자가 Microsoft 에이전트 속성 시트를 사용하여 음성 입력을 사용하지 않도록 설정한 경우에도 실패할 수 있습니다. 그러나 오디오 디바이스가 사용 중인 경우 메서드가 실패하지 않습니다.

이 메서드를 True로 설정하면 서버는 IAgentNotifySinkEx::ListeningState 이벤트를 트리거합니다. 또한 서버는 수신 모드 제한 시간이 완료되거나 IAgentCharacterEx::Listen toFalse를 설정할 때 IAgentNotifySinkEx::ListeningState를 보냅니다.

이 메서드는 IAgentCharacter::StopAll 을 자동으로 호출하지 않으며 사용자가 수신 대기 키를 누를 때 발생하는 대로 문자의 수신 대기 상태 애니메이션을 재생합니다. 이렇게 하면 IAgentNotifySinkEx::ListeningState 이벤트를 사용하여 현재 애니메이션을 중지하고 적절한 애니메이션을 재생할지 여부를 결정할 수 있습니다. 그러나 사용자 발화가 감지되면 서버는 자동으로 IAgentCharacter::StopAll 을 호출하고 청각 상태 애니메이션을 재생합니다.

참고 항목

IAgentNotifySinkEx::ListeningState, IAgentSpeechInputProperties::GetEnabled