280 likes | 589 Views
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING). Background of Multimedia Programming. Outline. Objects, Environment, and Framework of Multimedia Programming Requirement of Multimedia Programming History of Multimedia Programming Advantage and Disadvantage Conclusion.
E N D
SMM5101(ADVANCED MULTIMEDIA PROGRAMMING) Background of Multimedia Programming
Outline • Objects, • Environment, and • Framework of Multimedia Programming • Requirement of Multimedia Programming • History of Multimedia Programming • Advantage and Disadvantage • Conclusion
Why Objects? • 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 object-oriented approach
Why Objects? (cont…) • 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
Why Objects? (cont…) • There are some reasons for this affinity, include: • Encapsulation • Modularity • Extensibilty • Portability and cross-platform development • Software legacy
Why Objects? Encapsulation • MM programmers face a challenging environment • Concepts from many areas (including audio recording, video production, animation and music) • MM applications involve special hardware with idiosyncratic interfaces and operating procedures • 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
Why Objects? Modularity • 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 interconnectable • 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
Why Objects? Extensibilty • 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
Why Objects? Portability and cross-platform development • MM applications run on different platform and tolerate hardware variations within platforms - require rewriting application for every time to porting from platform to another • OO interfaces can make platform dependencies more explicit and so simplify both cross-platform development
Why Objects? Software legacy • Many software developers face a legacy problem - the need to maintain compatibility with earlier applications but not for multimedia. • MM applications design is less constrained by existing software and developers are free to exploit new techniques such as OOP languages.
Objects: instance variables and methods • Objects encapsulate both state and behavior • 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 manipulated
Objects: instance variables and methods play_mc.onRelease = function() { plane_mc.play(); }; (Make movieclipplane_mc play when control movieclipplay_mc is clicked) function flyPlane() { plane_mc.play(); } play_mc.onRelease = flyPlane; (Define a function to make plane_mc play. Assign that function to play_mc'sonRelease event, so that when play_mc is clicked, plane_mc will play)
MMP: Environment • MM systems is an independent discipline of study in computer science and engineering • MM environment is refers to the mix of hardware and software to support multimedia types
MMP: Environment • 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 improvement
Multimedia Programming Framework • 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.
Abstract classes Concrete classes Abstract classes Concrete classes Abstract classes Concrete classes Platform #1 Platform #2 Platform #n Multimedia Programming Framework Application Programming Interface (API) Abstract Classes Specialization Environment System Programming Interface …
Multimedia Programming Framework • 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
Multimedia Programming Framework • API, classes and the platform form a specific multimedia programming environment • There are factors delaying the portability of API: • 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 platform-dependently • No consensus on system-level support for MMP
Multimedia Programming Framework • Framework should be robust, well-documented, 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 types • Open • Extendable to incorporate with new media types, new data representation, and new hardware capabilities as they become available
Multimedia Programming Framework • 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 distribution • 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
Multimedia Programming Framework • 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 activities • These operations are central to multimedia programming
Multimedia ProgrammingRequirement Multimedia programming requires a mix of skills: • The ability to write scripts that people will enjoy reading or listening to • Graphic design, layout and visualisation skills • Programming and technical skills to control the interaction, hot buttons, animations, audio and intelligent effects to the production
History of MM Programming (Director) • 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 ) • Used to create the displays for “Star Trek” • 1991 (or 92): Director 3.0 (Mac) and Director for Windows (Windows 3.1) • 1993: Macromedia Director • Support a new and exciting technology (Quicktime) • 1994: Director 4.0 • First authoring environment with files were cross-platform (Mac and Windows)
History of MM Programming (Director) • 1998: Director 7 was released • as part of the “Shockwave Internet Studio” • RGB support • 1000 sprite channels, sprite rotation and skewing • embedded fonts and vector space • 2000: Director 8 and 8.5 was released and Macromedia puts strong effort into the Flash authoring environment • 2002: Director MX (aka version 9) • 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
History of MM Programming (Flash) • 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
Multimedia Programming Advantage • 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 software • being usable for a wide variety of platforms.
Multimedia Programming Disadvantange • The disadvantages of programming languages include: • slower development time • need for skilled programmers • difficulty in debugging • unsuitability for prototyping
Conclusion • 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 equipments