Lloyd Rutledge
Semantic Media Interfaces Group
CWI, Amsterdam, The Netherlands
W3C SYMM working group
Lynda Hardman,
Jacco van Ossenbruggen: CWI
Dick Bulterman, Jack Jansen, Sjoerd Mullender: Oratrix
W3C SYMM working group
http://www.cwi.nl/~media/SMIL/Tutorial/{SMIL-4hr.html}
Includes material from the book "SMIL 2.0 — Interactive Multimedia for Web and Mobile Devices"
Copyright © 2006, Lloyd Rutledge
Media
|
Layout
|
Timing
|
Interaction
|
Adaptivity
|
||||||
| Beginner | Integration |
<ref>
|
Containing Boxes | box elements | Timelines | composition | Linking |
<a> and href=
|
Selectivity | principles |
| URIs |
fit=
|
time boundaries | playstates | system test | ||||||
| modes and types |
z-index=
|
time types | volume |
<switch>
|
||||||
| Intermediate | Transitions | fades and wipes | Beyond Boxes | hierarchical regions | Animation | targets | Exclusion |
<excl>
|
Customization | custom test |
| alteration | registration alignment | values |
<priorityClass>
|
skip-content=
|
||||||
<transitionFilters>
|
opening and closing, sound | functions | time graphs |
<prefetch>
|
||||||
| Expert | Alteration | fragmentation | CSS | CSS in native SMIL | Beyond Timelihes | fill and restart | User Events | principles | Accessibility | core attributes |
<param>
|
text-flow | synchronization behavior | keyboard interaction | metadata | ||||||
| time manipulation | XHTML+SMIL |
min= and max=
|
DOM events | principles | ||||||
Media
|
|||||
Adaptivity
|
|
Layout
|
|||
Interaction
|
Timing
|
||||
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN"
"http://www.w3.org/TR/REC-smil/SMIL20.dtd">
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<layout>
<topLayout title="Fiets Amsterdam Tour"
backgroundColor="black"
width="1010" height="665">
<region regionName="splashScreen" top="5" left="5" bottom="5" right="5"/>
<region regionName="buildingImage" top="5" right="5" width="875" height="655"/>
<region regionName="closedCaptioning" bottom="5" left="5" right="5" height="60"/>
<region title="Thumbnail Bar" top="5" left="5" bottom="5" width="120">
<region regionName="museumThumb" fit="meet" height="90" top="65"/>
<region regionName="weighhouseThumb" fit="meet" height="90" top="280"/>
<region regionName="CWI-INSThumb" fit="meet" height="90" top="495"/>
</region>
</topLayout>
</layout>
<transition id="fade1s" type="fade" dur="1s" />
</head>
<body> <seq> <par title="Greeting Section" end="greet.end+1s"> <img src="FietsLogo.jpg" region="splashScreen" end="greet.end" transIn="fade1s" transOut="fade1s" alt="Logo for Fiets: a bicycle zone sign" /> <par id="greet" begin="1s"> <switch> <par systemlanguage="en" > <audio src="welcome.wav" region="buildingImage" alt="Welcome to Fiets, your self-guided tour of Amsterdam (spoken)" /> <text src="welcome.html" region="closedCaptioning" systemcaptions="on" alt="Welcome to Fiets, your self-guided tour of Amsterdam (captions)" /> </par> <par systemlanguage="nl" > <audio src="welkom.wav" region="buildingImage" alt="Welkom bij Fiets, uw eigen stadswandeling door Amsterdam (gesproken)" /> <text src="welkom.html" region="closedCaptioning" systemcaptions="on" alt="Welkom bij Fiets, uw eigen stadswandeling door Amsterdam (ondertiteling)" /> </par> </switch> </par> </par>
<par title="Thumbnail Section" dur="indefinite"> <par> <a href="#museum" alt="Show the Rijksmuseum" > <img src="museum.jpg" region="museumThumb" alt="Rijksmuseum thumbnail" /> </a> <a href="#weighhouse" alt="Show the Weighhouse" > <img src="weighhouse.jpg" region="weighhouseThumb" alt="Weighhouse (Waag) thumbnail" /> </a> <a href="#CWI-INS" alt="Show the CWI-INS building" > <img src="CWI-INS.jpg" region="CWI-INSThumb" alt="CWI-INS building thumbnail" /> </a> </par> <excl dur="indefinite" > <img src="museum.jpg" id="museum" region="buildingImage" alt="Rijksmuseum" /> <img src="weighhouse.jpg" id="weighhouse" region="buildingImage" alt="Weighhouse (Waag)" /> <img src="CWI-INS.jpg" id="CWI-INS" region="buildingImage" alt="CWI-INS building" /> </excl> </par> </seq> </body> </smil>
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN"
"http://www.w3.org/TR/REC-smil/SMIL20.dtd">
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"
<svg xmlns="http://www.w3.org/2000/svg">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+SMIL //EN"
"http://www.w3.org/2001/SMIL20/WD/xhtmlplussmil.dtd"
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:smil="http://www.w3.org/2001/SMIL20">
<smil> Element<head> Element<body> Element<ref>
| The Waag is a medieval buiding in Amsterdam |
|
|
|
The Waag is a medieval buiding in Amsterdam. It was originally a gate into the city through the city wall. Later it became a weighhouse for goods being brought | |
| <text> | <image> | <video> | <audio> | <animation> | <textstream> |
<brush> Elementcolor= Attribute<region>
src= attribute holds a URI locating the mediaxml:base=
type= Attribute<topLayout> Element — General-purpose Window<root-layout> Element — The Main or Only
Window<region> ElementregionName= or id= attribute for each region is
required
fit=
z-index=
z-index attribute determines
which image appears on topz-index= determines the stacking order
<seq> (sequence) —
each child starts when previous ends
<par> (parallel) —
all children start together
<par>'s and <seq>'s can be nestedendsync=
<par> can end when the
="first" element to finish ends<par endsync="first"> <text src="leader_title.html" region="m_title" dur="5s"/> <video id="v1" src="cnn.mpg" region="V-Main" begin="1.4s"/> <audio src="cnn.aiff" region="music" begin="id(v1)(0.5s)"/> </par>
<par> can end when the referenced element ends:
id( Id-value
)
<par> can end when the ="last"
element to finish ends (default)begin= — in terms of default beginend= — in terms of default begindur= —
explicit duration overrides implicitrepeatDur= — loop for specified periodrepeatCount= — loop specified number of times="indefinite" —
nothing from element or its content triggers this time boundary
dur= clock-value,
"indefinite"
<a> and href=
<a> Elementhref= Attributehref="#
idref
" Attribute
Assignmentshow= Attributeexternal= Attribute — open with external
programtarget= Attribute — region or other display space
to show insourcePlaystate= AttributedestinationPlaystate= AttributesourceLevel= AttributedestinationLevel= AttributesystemLanguage= AttributesystemCaptions= AttributesystemOverdubOrSubtitle= AttributesystemAudioDesc= AttributesystemBitrate= AttributesystemCPU= AttributesystemScreenSize= AttributesystemScreenDepth= AttributesystemOperatingSystem = AttributesystemComponent= AttributesystemRequired= Attribute<switch>
<transition> Elementtype= Attribute — Which of the fixed set of
transition types to usesubtype= Attribute="barWipe" with subtypes
="leftToRight" and ="topToBottom"
direction= Attribute — ="forward"
(default) or ="reverse"
fadeColor= Attribute — color value for what is
faded from/tostartProgress= and endProgress=
AttributeshorzRepeat= and vertRepeat= AttributesborderColor= and borderWidth= Attributes<transitionFilter>
transIn= and transOut= Attributes
— ID of Transition to Use<transitionFilter> ElementtargetElement= Attributemode= Attribute="in" or
="out"
regPoint= and regAlign= Alignment
showBackground= Attribute for Regions"always" and "whenActive" valuesopen= Attribute — Opening Windows"onStart" and "whenActive"
valuesclose= Attribute — Closing Windows"onRequest" and "whenNotActive"
valuessoundLevel= attribute<animate> Element
— change an attribute value over time<animateMotion> Element
— move an object across the screen<animateColor> Element
— change an object's color<set> Element
— assign an attribute a value for a period of timehref= or targetElement= Attribute
— ID element with attribute to animateattributeName= AttributeattributeType= Attribute
— ="XML", ="CSS", or
="auto"matically determine whichfrom= and to= Attributes
— starting and ending values of attribute in animationby= Attribute — incremental value changevalues= Attribute
— list of values the attribute goes throughcalcMode= Attribute="discrete", ="linear" or
="paced"
accumulate= Attributeadditive= Attribute="sum" with the assigned value or ="replace"
it?origin= Attribute<animateMotion> starts frompath= AttributekeyTimes= Attributevalue
keySplines= Attributevalue
<excl>
<excl> children
<excl>
<priorityClass>
="stop" value="pause" value="defer" value="never" valuepeers= Attributelower= Attributehigher= Attribute="disable" value="hide" value="show" value<customAttributes> Element<customTest> test definitions<customTest> ElementcustomTest= Attribute<customTest> test this body element must
passuid= AttributedefaultState= attributeoverride= Attributeskip-content=
skip-content Attribute<prefetch>
<prefetch> Elementsrc= attribute determines this itemmediaSize= AttributemediaTime= Attributebandwidth= Attributecoords= attribute (similar to HTML image maps)shape= and nohref= attributesclipBegin= and clipEnd= attributes
— clip with measured momentsmarker=” Substring
— clip with named momentsbegin= and end=
Attributes.marker()” Substring for
begin= and end= Attributesfragment= Attribute for <area>
Elements<param>
<param> Element
— Passing One Parameter to the Media Presentername= Attribute — the parameter's namevalue= AttributevalueType= Attribute="data", URI ="ref" or media
="object" element elsewhere in presentationerase= Attribute
— when to end display after active period ends="whenDone" — when the element ends="never"
— after element ends, until replaced on display surfacemediaRepeat= Attribute="preserve" (default) or ="strip" repeat
intrinsic in mediasensitivity= Attributespeed= Attributeaccelerate= Attributedecelerate= AttributeautoReverse= Attributetype= AttributetimeContainer= Attribute<p>
in XHTML+SMIL="par", ="seq", ="excl" or
="none"
timeAction= Attribute="intrinsic", ="display",
="visibility", ="style", ="class" or
="none"
fill= and fillDefault= attributes="remove", ="freeze", ="hold" or
="transition"
="auto", ="inherit" or
="default"
restart= Attribute
— Can element start again from beginning if playing?="always", ="whenNotActive" or
="never"
="default" — use restartDefault=
attributerestartDefault= Attribute="always", ="whenNotActive" or
="never"
="inherit" — get from parentsyncBehavior= Attribute="locked" — for lip synchronization="canSlip" — for background music="independent" of seeks on parentsyncTolerance= AttributesyncMaster= Attributemin= and max=
min= Attribute —
Minimum for active durationmax= Attribute —
Maximum for active durationactuate="auto" assignmenttabindex= attribute for the <a> and
<area> elementsaccesskey= Attribute for the <a> and
<area> elements.accesskey()” Substring for
begin= and end= Attributes.event()” Substringbegin and end
click, mouseover, mouseout
<a id="source" href="#destination">
<par id="destination" begin="source.click">
id=, title=, alt=,
longdesc=, class=, xml:base=,
xml:lang=
alt= Attribute — contains alternative textlongdesc= Attributealt, but longer and should include
descriptions of areasreadIndex= Attribute
— Order to read aloud for sight-impairedtitle= Attributexml:lang= Attribute<meta> element defines properties of a documentname=
attribute is the property and the content=
attribute gives the value<meta name="title" content="Web News, 15th June 1998"/> <meta name="base" content="http://www.cwi.nl/SMIL/webnews/"/>
name
attribute) is open-ended<metadata> Element — RDF contentalt=,
title=, abstract= and
longdesc=
layout
and region elements