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
requiredfit=
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 boundarydur=
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=
AlignmentshowBackground=
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