\hypertarget{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_face_info_observer}{}\doxysection{io.\+agora.\+rtc2.\+video.\+I\+Face\+Info\+Observer Interface Reference}
\label{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_face_info_observer}\index{io.agora.rtc2.video.IFaceInfoObserver@{io.agora.rtc2.video.IFaceInfoObserver}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
boolean \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_face_info_observer_a415421d169b4b98b3539e8533342954c}{on\+Face\+Info}} (String out\+Face\+Info)
\begin{DoxyCompactList}\small\item\em Occurs when the facial information processed by speech driven extension is received. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer}{I\+Video\+Encoded\+Frame\+Observer}} interface. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_face_info_observer_a415421d169b4b98b3539e8533342954c}\label{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_face_info_observer_a415421d169b4b98b3539e8533342954c}} 
\index{io.agora.rtc2.video.IFaceInfoObserver@{io.agora.rtc2.video.IFaceInfoObserver}!onFaceInfo@{onFaceInfo}}
\index{onFaceInfo@{onFaceInfo}!io.agora.rtc2.video.IFaceInfoObserver@{io.agora.rtc2.video.IFaceInfoObserver}}
\doxysubsubsection{\texorpdfstring{onFaceInfo()}{onFaceInfo()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rtc2.\+video.\+I\+Face\+Info\+Observer.\+on\+Face\+Info (\begin{DoxyParamCaption}\item[{String}]{out\+Face\+Info }\end{DoxyParamCaption})}



Occurs when the facial information processed by speech driven extension is received. 


\begin{DoxyParams}{Parameters}
{\em out\+Face\+Info} & Output parameter, the J\+S\+ON string of the facial information processed by the voice driver plugin, including the following fields\+:
\begin{DoxyItemize}
\item faces\+: Object sequence. The collection of facial information, with each face corresponding to an object.
\item blendshapes\+: Object. The collection of face capture coefficients, named according to A\+Rkit standards, with each key-\/value pair representing a blendshape coefficient. The blendshape coefficient is a floating point number with a range of \mbox{[}0.\+0, 1.\+0\mbox{]}.
\item rotation\+: Object sequence. The rotation of the head, which includes the following three key-\/value pairs, with values as floating point numbers ranging from -\/180.\+0 to 180.\+0\+:
\begin{DoxyItemize}
\item pitch\+: Head pitch angle. A positve value means looking down, while a negative value means looking up.
\item yaw\+: Head yaw angle. A positve value means turning left, while a negative value means turning right.
\item roll\+: Head roll angle. A positve value means tilting to the right, while a negative value means tilting to the left.
\end{DoxyItemize}
\item timestamp\+: String. The timestamp of the output result, in milliseconds. Here is an example of J\+S\+ON\+: \{ \char`\"{}faces\char`\"{}\+:\mbox{[}\{ \char`\"{}blendshapes\char`\"{}\+:\{ \char`\"{}eye\+Blink\+Left\char`\"{}\+:0.\+9, \char`\"{}eye\+Look\+Down\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+In\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+Out\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+Up\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Squint\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Wide\+Left\char`\"{}\+:0.\+0, \char`\"{}eye\+Blink\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+Down\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+In\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+Out\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Look\+Up\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Squint\+Right\char`\"{}\+:0.\+0, \char`\"{}eye\+Wide\+Right\char`\"{}\+:0.\+0, \char`\"{}jaw\+Forward\char`\"{}\+:0.\+0, \char`\"{}jaw\+Left\char`\"{}\+:0.\+0, \char`\"{}jaw\+Right\char`\"{}\+:0.\+0, \char`\"{}jaw\+Open\char`\"{}\+:0.\+0, \char`\"{}mouth\+Close\char`\"{}\+:0.\+0, \char`\"{}mouth\+Funnel\char`\"{}\+:0.\+0, \char`\"{}mouth\+Pucker\char`\"{}\+:0.\+0, \char`\"{}mouth\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Smile\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Smile\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Frown\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Frown\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Dimple\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Dimple\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Stretch\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Stretch\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Roll\+Lower\char`\"{}\+:0.\+0, \char`\"{}mouth\+Roll\+Upper\char`\"{}\+:0.\+0, \char`\"{}mouth\+Shrug\+Lower\char`\"{}\+:0.\+0, \char`\"{}mouth\+Shrug\+Upper\char`\"{}\+:0.\+0, \char`\"{}mouth\+Press\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Press\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Lower\+Down\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Lower\+Down\+Right\char`\"{}\+:0.\+0, \char`\"{}mouth\+Upper\+Up\+Left\char`\"{}\+:0.\+0, \char`\"{}mouth\+Upper\+Up\+Right\char`\"{}\+:0.\+0, \char`\"{}brow\+Down\+Left\char`\"{}\+:0.\+0, \char`\"{}brow\+Down\+Right\char`\"{}\+:0.\+0, \char`\"{}brow\+Inner\+Up\char`\"{}\+:0.\+0, \char`\"{}brow\+Outer\+Up\+Left\char`\"{}\+:0.\+0, \char`\"{}brow\+Outer\+Up\+Right\char`\"{}\+:0.\+0, \char`\"{}cheek\+Puff\char`\"{}\+:0.\+0, \char`\"{}cheek\+Squint\+Left\char`\"{}\+:0.\+0, \char`\"{}cheek\+Squint\+Right\char`\"{}\+:0.\+0, \char`\"{}nose\+Sneer\+Left\char`\"{}\+:0.\+0, \char`\"{}nose\+Sneer\+Right\char`\"{}\+:0.\+0, \char`\"{}tongue\+Out\char`\"{}\+:0.\+0 \}, \char`\"{}rotation\char`\"{}\+:\{\char`\"{}pitch\char`\"{}\+:30.\+0, \char`\"{}yaw\char`\"{}\+:25.\+5, \char`\"{}roll\char`\"{}\+:-\/15.\+5\}, \}\mbox{]}, \char`\"{}timestamp\char`\"{}\+:\char`\"{}654879876546\char`\"{} \}
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item {\ttfamily true}\+: Facial information J\+S\+ON parsing successful.
\item {\ttfamily false}\+: Facial information J\+S\+ON parsing failed. 
\end{DoxyItemize}
\end{DoxyReturn}
