In this sequence, the user can switch between english and japanese sound tracks and french and spanish subtitles. The video
material used is the introduction of "The Second Renaissance Part I" from the animatrix series, freely available on their web site.
The content also features an animated, embedded skin providing media control (play/pause/stop/ffw) and a link to an internet web page.
Note that the stream selection can happen when the main player is paused, because pausing only affects timelines, not interactions.
Important features used in this content
Media Management
- MediaControl
This node allows to pause and resume a media object from a given
point in time, rather than from its begining. It may also be used to mute media composition.
In this example, the MediaControl controls the playback of the
video stream, on which all other streams are synchronized..
- MediaSensor
This node is used to track the timeline of a media object. It may
also be used to track switching of media segments (eg chapters).
In this example, the MediaSensor tracks the timeline of the video
stream, on which all other streams are synchronized..
- AnimationStream
This node is used to control the playback of a media object
carrying enhancement to the scene description, usually BIFS commands or BIFS animation. The enhancement are carried in a dedicated stream. This feature is very similar to animation sprites in games or other multimedia formats.
It may also be used to control a 3GPP text stream.
In this example, the AnimationStream controls the playback of the
subtitles.
Scripting
- Conditional
This node is used to exectute a set of BIFS commands (replace,
delete, ...) upon a scene event (pointing device, time event). It allows fast and memory-efficient modification of the scene, without the overhead of a full scripting language.
In this example, the Conditional nodes are used to modify object
appearances on mouse move.
- Script
This node is used to exectute complex scripting, typically
ECMAScript. It gives more control on the scene compared to a conditional, and is very usefull to handle state variables.
In this example, the script is used to manage the stream selection
state as well as the MediaControl node.
User Interactivity
- Anchor
This node is used to navigate between viewpoints inside the scene,
to another scene or to an external, non-MPEG-4 ressource such as an HTML page.
In this example, the anchor node is used to navigate to the home
page of the Animatrix series.
- TouchSensor
This node is used enable pointing devices interactions with
graphical elements of the scene, generating a set of simple (isOver, isActive) as well as complex (hitPoint, hitNormal, hitTexCoord) events.
- TimeSensor
This node is used to generate time events at each simultaion tick,
as well as cycle events when the sensor loops.
In this example, the TimeSensor node drives the control bar
animations.
- PositionInterpolator2D
This node is used to generate a SFVec2f value by linear
interpolation between user defined values.
In this example, the PositionInterpolator2D node controls the
translation and scaling of the control bar.