Background of Multimedia Programming
 Objects,
 Environment, and
 Framework of Multimedia Programming
 Requirement of Multimedia Programming
 History of Multimedia Programming
 Advantage and Disadvantage
 Conclusion
Multimedia involves multiple type of object
◦ Nontemporal object types
◦ Temporal object types
Multiple data type indicating the different
form of data that are present
Different data types anticipating the objectoriented approach
Classification data types based on similarity
in their representations and operations so as
to help understand how to model data types
using object-oriented techniques.
Object-oriented technique appears to be
natural fit between multimedia programming
There are some reasons for this affinity,
Portability and cross-platform development
Software legacy
MM programmers face a challenging
1. Concepts from many areas (including audio
recording, video production, animation and
2. MM applications involve special hardware with
idiosyncratic interfaces and operating
Strengths of OOP is its ability to
encapsulate information and help shield
programmers from many of the details of
particular media and pieces of hardware
The equipment used in audio and video
relies to a larger and larger extend on
digital technology
◦ Mixers to editing suites and special effect devices
are becoming programmable and more
◦ Processing functionality of studios is moving
available to applications running on PCs
OOP is well suited to capturing the complex
interfaces of media processing services in a
modular form which is easy for application
developers to use
The requirements and the nature of
multimedia applications are evolving and
far from stable
◦ Database system multimedia, virtual
environments, conferencing system etc.
applications should be able to adapt changes in
interface technology, media formats and
hardware platform
OOP addresses the need for extensibility by
offering mechanisms for enhancing and
extending existing code
MM applications run on different platform
and tolerate hardware variations within
platforms - require rewriting application for
every time to porting from platform to
OO interfaces can make platform
dependencies more explicit and so simplify
both cross-platform development
Many software developers face a legacy
problem - the need to maintain compatibility
with earlier applications but not for
MM applications design is less constrained by
existing software and developers are free to
exploit new techniques such as OOP
Objects encapsulate both state and
Object is a programming language
construct that identifies a collection of data
items and a collection of operations
◦ Data items - object’s instance variable
◦ Operations - object’s method
 Meant to be the only interface by which objects are
play_mc.onRelease = function() {; };
(Make movieclip plane_mc play when control movieclip play_mc
is clicked)
function flyPlane() {; }
play_mc.onRelease = flyPlane;
(Define a function to make plane_mc play. Assign that function
to play_mc's onRelease event, so that when play_mc is
clicked, plane_mc will play)
MM systems is an independent discipline
of study in computer science and
MM environment is refers to the mix of
hardware and software to support
multimedia types
After a number of commercial products and
prototype systems have been built, then, it
has been observed that the current
programming paradigm for developing
multimedia software needs some
In a way of compelling the ideas of object
orientation to multimedia programming –
MM framework shows the encompassing of
the essential object and operations that
appear in MM applications
MM framework consists of interrelated
abstract classes which are tailored and
specialized for different MM platforms.
Application Programming Interface (API)
Abstract Classes
Abstract classes
Abstract classes
Abstract classes
Concrete classes
Concrete classes
Concrete classes
System Programming Interface
Platform #1
Platform #2
Platform #n
Abstract classes – a group of methods and
instance variables which shared by several
subclasses where their definition are partially
or deferred to the subclasses
Concrete classes – the methods and instance
variables are fully defined
API, classes and the platform form a specific
multimedia programming environment
There are factors delaying the portability of
Platform need not offer the same capabilities, or API
may be supported on some platforms but not others
The performance of platform differs
Some applications bypass the API and directly access
No consensus on system-level support for MMP
Framework should be robust, welldocumented, and complete
Requirement for MM Programming includes:
◦ Economy of concept
 Should based on a small number of concept, otherwise it
becoming a maze of media-specific detail
 Proper identify general concept that apply across media
◦ Open
 Extendable to incorporate with new media types, new
data representation, and new hardware capabilities as
they become available
◦ Queryable
 should specify interface for querying environments
concerning their capabilities
 Application produced can recognize missing functionality
and adapt their behaviour
◦ Distribution
 Should help partition applications in a way that facilities
 The object within the framework should correspond to
easy-to-distribute units or subsystem
 The utility of a framework is greatly diminished if it
conflicts with distribution
◦ Scalable
 Should support scalable media representation
 if media representation are scalable, applications can
increase quality as platform performance increases
◦ High-level interface
 Should provide high-level interface for media
synchronization, media composition, device control,
database integration, and concurrent media processing
 These operations are central to multimedia programming
Multimedia programming requires a mix of
The ability to write scripts that people will
enjoy reading or listening to
Graphic design, layout and visualisation
Programming and technical skills to control
the interaction, hot buttons, animations,
audio and intelligent effects to the
1984: Macromind (Jay Fenton, Mark Canter, Mark Pierce)
1985: VideoWorks for “Guided Tour” to Apple Macintosh OS
1987: VideoWorks II (colour + animation)
1988: VideoWorks Interactive Pro, renamed to Director 1.0
◦ using Lingo Scripting (John Thompson & Erik Neumann) –
 replace Tiny Basic scripting by Jay Fenton)
1990: Director 2.0 (John Thompson )
1991 (or 92): Director 3.0 (Mac) and Director for Windows
(Windows 3.1)
1993: Macromedia Director
◦ Used to create the displays for “Star Trek”
◦ Support a new and exciting technology (Quicktime)
1994: Director 4.0
◦ First authoring environment with files were cross-platform (Mac and
1998: Director 7 was released
2000: Director 8 and 8.5 was released and Macromedia puts
strong effort into the Flash authoring environment
2002: Director MX (aka version 9)
as part of the “Shockwave Internet Studio”
RGB support
1000 sprite channels, sprite rotation and skewing
embedded fonts and vector space
◦ Flash compatable and some authoring enhancement
2004: Director MX 2004 supports JavaScript syntax as
alternative to Lingo
2005: Adobe Director
2006: Shockwave Player 10.1.1r16 (allow the use of Flash 8)
2008: Adobe Director 11
1993: FutureWave Software to dominate the market for
graphics software on pen computers (Jonathan Gay)
1994: SmartSketch (without animation)
1996: FutureSplash Animator
Nov 1996: internet come in for TV-like experience
Dec 1996: sold FutureSplash Animator to Macromedia
 Macromedia Flash 1.0
2001: Flash has been through five versions at Macromedia
Now: Flash become a complete multimedia development
environment with 500,000 developers and over 325
million users of the flash player
◦ Flash MX
◦ Flash CS3
◦ Flash CS4
The advantages of MM programming
languages include:
producing multimedia applications to run fast
accessing system calls directly
being able to control non-standard hardware and
◦ being usable for a wide variety of platforms.
The disadvantages of programming
languages include:
slower development time
need for skilled programmers
difficulty in debugging
unsuitability for prototyping
Object-oriented programming is currently
the most popular language for multimedia
design and implementation:
◦ is that has numerous compilers for many
platforms and can access various multimedia