One continuous video for both the idle and the talking state, so there is nothing to swap. Expressive (V4) agents always stream this way, and it is what makes interrupt() possible.
Two videos: the agent's idle video, which the application plays itself, and the streamed talking video. Switch between them in onVideoStateChange.
How the agent's idle and talking video are delivered.
Returned by getStreamType(). Which one a session gets follows from the agent and from fluent.