throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2004/0267899 A1
`Rahman et al.
`(43) Pub. Date:
`Dec. 30, 2004
`
`US 20040267899A1
`
`(54) INCORPORATING INTERACTIVE MEDIA
`INTO A PLAYLIST
`
`(22) Filed:
`
`Jun. 27, 2003
`
`Publication Classi?cation
`
`(75) Inventors: Sha?q Ur Rahman, Redmond, WA
`(Us); Sohai] Baig Mohammed,
`Redmond, WA (Us); Khurshed
`Mazhar, Kirkland, WA (US); Kevin P.
`Larkin, Mercer Island, WA (US);
`Patrick N. Nelson, Seattle, WA (US);
`Bret P. O’Rourke, Kirkland, WA (US)
`
`Correspondence Address:
`LEE & HAYES PLLC
`421 W RIVERSIDE AVENUE SUITE 500
`SPOKANE, WA 99201
`
`(73) Assignee: MICROSOFT CORPORATION, RED
`MOND, WA (US)
`
`(21) Appl. No.:
`
`10/608,648
`
`(51) Int. Cl.7 ................................................... .. G06F 15/16
`(52) US. Cl. .......................................... .. 709/217; 709/234
`(57)
`ABSTRACT
`An exemplary system includes a media control operable to
`begin playing a media segment automatically after buffering
`the media segment, and a host application operable to
`receive a reference to the media segment, initialize the
`media control With the media segment, and cause the media
`control to postpone playing of the media segment after the
`media segment is buffered. An exemplary method includes
`receiving a playlist referencing a ?rst media segment and a
`second media segment, the second media segment operable
`to play automatically Without a prompt after being loaded,
`presenting the ?rst media segment, and prerolling the second
`media segment.
`
`100w
`
`K interactive Media Events Wrapper 106\
`
`Host Application m
`
`Interactive Media
`Presentation Control m
`
`Piaylist _1_1_2_
`
`ll
`
`interactive Media
`Segment 11_0
`
`User interface M
`
`Yamaha Corporation of America Exhibit 1017 Page 1
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 1 0f 6
`
`US 2004/0267899 Al
`
`1
`Y
`
`
`
`or momtQE Low:
`
`F .OI
`
`Yamaha Corporation of America Exhibit 1017 Page 2
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 2 0f 6
`
`US 2004/0267899 A1
`
`mom Z
`
`Now
`
`vow
`
`Yamaha Corporation of America Exhibit 1017 Page 3
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 3 0f 6
`
`US 2004/0267899 A1
`
`m_‘m
`
`3m
`
`em
`
`m5
`
`omm
`
`a:_Em§m_oEm§_u_
`
`Amucw>wEBw=o§E
`
`m_o=:00to%cm:.
`
`Emywmfimmhgmfiflmzommz
`
`m.GE
`
`NrmScrmtsmooucmvgu39m.ucmEEooncmEEoowu
`
`mom3639‘sEm>m£85.95995
`
`
`
`
`Axomfiméoucmvgm$553239.”cogmam‘smmmco
`
`
`Now
`
`mom
`
`Yamaha Corporation of America
`
`Exhibit 1017 Page 4
`
`Yamaha Corporation of America Exhibit 1017 Page 4
`
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 4 0f 6
`
`US 2004/0267899 A1
`
`400 m
`
`402 '~—{ Parse ASX ,
`
`404
`
`406
`
`v
`Load First Playlist 7
`Reference
`J
`
`V
`Select Wrapper Based or?
`ASX media segment typeJ
`
`Fara
`
`408
`
`Launch Selected Wrapper
`
`a
`
`aiia
`
`410
`
`initialize Flash Control
`
`V
`
`\
`
`J
`
`\
`Negotiate Ul Resources
`J
`
`ii
`
`ii
`
`Call wrapper 9 Play()
`
`ii
`Start presentation of \
`Flash movie
`
`418
`
`ti
`Flash control calls FSCommand with
`WMPEndofPlayback
`
`i
`420 1E Translate event to EndofPlayback J
`tr
`422 ‘{ Fire EndofPlayback to host application 1
`
`424
`
`r
`End
`
`FIG. 4
`
`Yamaha Corporation of America Exhibit 1017 Page 5
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 5 0f 6
`
`US 2004/0267899 A1
`
`500 1
`
`502 L-( Parse ASX ’
`
`504 i (
`
`v
`Load video.wmv
`
`1
`
`506 Li
`
`\
`
`Play video.wmv
`
`'
`
`i
`508 1 video.wmv ?res
`L EndofStreammg J
`
`v
`
`51 o I’ Preroll ?ash.swf
`\
`
`J
`
`V
`512 1 video.wmv ?res
`\ EndofPlayback
`
`514
`
`r i
`
`Play ?ash.swf
`
`4
`
`?ash.swf ?res
`EndofBuffering
`
`?ash.swf ?res
`EndofStreaming
`
`516
`
`517
`
`Y
`
`[ Prerol|audio.wma F518
`
`Flashswf ?res
`EndofPlayback
`
`J- 520
`
`Play audio.wma
`
`f 522
`
`Audio.wma ?res
`EndofBuffering
`
`Audio.wma ?res
`EndofStreaming
`
`V
`. _—_'_1
`Audro.wma ?res
`EndofPlayback
`
`FIG. 5
`
`Yamaha Corporation of America Exhibit 1017 Page 6
`
`

`

`Patent Application Publication Dec. 30, 2004 Sheet 6 0f 6
`
`US 2004/0267899 A1
`
`mmhsmzoo
`
`owe
`
`[axmoghmz<mm<mo_«m.
`
`
`Nmm_Hli=iiiIiU
`
`zofi<03mm<
`
`m§<m00mm
`
`moczoz_ms"
`éogmz”EmmaSEQ$592:g.zéooE”Emiég_0522.2EEO_
`__"mzéooE"__Hmmmam$.szzo:<o:&<“801L556u"Egg:2:wzpsmao"a"89>ozammooE.............................uu3am_
`__
`
`
`
`mofimflz.modawzmoimmmzmamamoimEz.$582"xmozfizH0maxxmamama_
`
`
`mo<mmmkz_
`
`_
`
`_
`
`§<mwomm
`
`
`
`$58.2mszmooma555
`
`
`
`mmxkozofi<03mm<ozfi<mmmo
`
`___m
`
`Yamaha Corporation of America
`
`Exhibit 1017 Page 7
`
`Yamaha Corporation of America Exhibit 1017 Page 7
`
`
`
`
`
`
`

`

`US 2004/0267899 A1
`
`Dec. 30, 2004
`
`INCORPORATING INTERACTIVE MEDIA INTO A
`PLAYLIST
`
`TECHNICAL FIELD
`
`[0001] The described subject matter relates generally to
`methods, devices, and systems for incorporating media into
`a playlist.
`
`BACKGROUND
`
`[0002] A typical media player (e.g., WindoWs Media
`Player®) employs a “playlist.” Aplaylist is a listing of one
`or more references to one or more media (e.g., video, audio,
`text, and/or animation data) segments. The playlist may also
`include information about the media segrnent(s), such as
`titles, authors, order of play, and the like. For example, a
`playlist may include a list of compact disk (CD) song titles.
`The media player presents the CD song titles to a user, and
`the user can select and play a song from the list of titles.
`Typically, each of the media segments referenced in a
`playlist has a start indicator and an end indicator, Which
`indicate When each of the media segments are to start and
`end, respectively. When a start and end indicator are pro
`vided, the media player can use these indicators to facilitate
`sequencing through the media segrnent(s) referenced by the
`playlist.
`[0003] In addition, in order to “seamlessly” transition
`from one media segment (e.g., a song on a CD) to another
`media segment referenced in a playlist, the media player can
`“preroll” an upcoming segment. Prerolling refers to loading
`an upcoming media segment While a current media segment
`is playing. Thus, the upcoming media segment is already
`loaded and ready to play immediately after the current media
`segment has ?nished playing. After the media player
`receives messages that prerolling is complete, and the cur
`rent media segment has ?nished playing, the media player
`explicitly prompts the prerolled media segment to begin
`playing. Thus, there is a seamless transition from the current
`media segment to the next media segment, and there is no
`overlap in playing of the tWo media segments.
`
`[0004] Some types of media are “continuous”, in that they
`do not have a de?nite end associated With them. For
`example, many types of interactive media, such as Flash®,
`are continuous. A Flash® movie is typically composed of a
`number of scenes, often animated, that are to be played
`repeatedly, While Waiting for user input. When the user
`selects a speci?ed location in the Flash® movie, the movie
`may change to a different set of scenes and/or prompt the
`user for other input. In addition, Flash® and other types of
`interactive media often begin playing automatically after
`they are loaded, Without being prompted. For example,
`When a Web page is accessed that has an embedded Flash®
`movie, the movie Will load, and automatically begin playing,
`Waiting for user input. Interactive media, such as Flash®,
`have become extremely popular for use in “Web” pages on
`the Internet because of their interactive nature, and continu
`ous and unprompted play. Thus, Flash® and other interac
`tive media are Well-adapted to implementation on Web
`pages.
`[0005] HoWever, the continuous and unprompted nature of
`such interactive media has rendered such media ineffective
`or unusable in playlists. An interactive media segment
`Without a de?nite end prevents typical media players from
`
`being able to prompt play of a subsequent media segment via
`a playlist and the media player Will not play through the
`entire play list. In addition, interactive media that automati
`cally begins playing after loading does not alloW for the
`seamless playback provided by many media players because
`the media automatically starts playing after loading, regard
`less of Whether other media is currently playing. Thus, much
`of the interactive media that has been developed for Web
`broWsing cannot be reused by a typical media player
`employing playlists. Unfortunately, as a result, many media
`developers have resorted to developing non-interactive
`media, Which does not provide the advantages of interactive
`media, so that their media can be played via playlists.
`
`SUMMARY
`[0006] Implementations described and claimed herein
`solve the discussed problems, and other problems.
`
`[0007] An exemplary system includes a media control
`operable to begin playing a media segment automatically
`after buffering the media segment, and a host application
`operable to receive a reference to the media segment,
`initialiZe the media control With the media segment, and
`cause the media control to postpone playing of the media
`segment after the media segment is buffered.
`[0008] An exemplary method includes receiving a playlist
`referencing a ?rst media segment and a second media
`segment, the second media segment operable to play auto
`matically Without a prompt after being loaded, presenting
`the ?rst media segment, and prerolling the second media
`segment.
`[0009] Another exemplary method includes parsing a
`playlist having at least one reference to an interactive media
`segment operable to play continuously, playing the interac
`tive media segment in an interface of a host application With
`a control operable to play the interactive media segment, and
`receiving a media segment event from the control indicating
`that the playing of the interactive media segment has ?n
`ished.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`[0010] A more complete understanding of the various
`methods and arrangements described herein, and equivalents
`thereof, may be had by reference to the folloWing detailed
`description When taken in conjunction With the accompa
`nying draWings Wherein:
`[0011] FIG. 1 is a block diagram illustrating an exemplary
`architecture that may be used to incorporate interactive
`media into a playlist.
`
`[0012] FIG. 2 illustrates an exemplary playlist in .ASX
`format including a reference to an interactive media seg
`ment.
`
`[0013] FIG. 3 is a block diagram illustrating an exemplary
`interactive media events Wrapper that may be used to
`interface betWeen an interactive media presentation control
`and a host application for incorporating an interactive media
`segment into a playlist.
`
`[0014] FIG. 4 is an exemplary interactive media presen
`tation operation having exemplary operations for presenting
`an interactive media segment referenced in a playlist, even
`though the interactive media segment is designed to play
`continuously.
`
`Yamaha Corporation of America Exhibit 1017 Page 8
`
`

`

`US 2004/0267899 A1
`
`Dec. 30, 2004
`
`[0015] FIG. 5 is an exemplary interactive media presen
`tation operation having exemplary operations for prerolling
`an interactive media segment referenced in the playlist of
`FIG. 2, even though the interactive media segment is
`operable to automatically begin playing after the segment is
`loaded.
`
`[0016] FIG. 6 is a block diagram illustrating an exemplary
`computer and/or computing environment suitable for use
`With various methods, units, system, and/or architectures
`described herein.
`
`DETAILED DESCRIPTION
`
`[0017] Turning to the draWings, Wherein like reference
`numerals refer to like elements, various methods are illus
`trated as being implemented in a suitable computing envi
`ronment. Although not required, various exemplary methods
`Will be described in the general context of computer-execut
`able instructions, such as program modules, being executed
`by a personal computer and/or other computing device.
`Generally, program modules include routines, programs,
`objects, components, data structures, etc. that perform par
`ticular tasks or implement particular abstract data types.
`Moreover, those skilled in the art Will appreciate that various
`exemplary methods may be practiced With other computer
`system con?gurations, including hand-held devices, multi
`processor systems, microprocessor based or programmable
`consumer electronics, netWork PCs, minicomputers, main
`frame computers, and the like. Various exemplary methods
`may also be practiced in distributed computing environ
`ments where tasks are performed by remote processing
`devices that are linked through a communications netWork.
`In a distributed computing environment, program modules
`may be located in both local and remote memory storage
`devices.
`
`[0018] In some diagrams herein, various algorithmic acts
`are summariZed in individual “blocks”. Such blocks
`describe speci?c actions or decisions that are made or
`carried out as a process proceeds. Where a microcontroller
`(or equivalent) is employed, the How charts presented herein
`provide a basis for a “control program” or softWare/?rmWare
`that may be used by such a microcontroller (or equivalent)
`to effectuate the desired control. As such, the processes are
`implemented as machine-readable instructions storable in
`memory that, When executed by a processor, perform the
`various acts illustrated as blocks.
`
`[0019] Those skilled in the art may readily Write such a
`control program based on the How charts and other descrip
`tions presented herein. It is to be understood and appreciated
`that the subject matter described herein includes not only
`devices and/or systems When programmed to perform the
`acts described beloW, but the softWare that is con?gured to
`program the microcontrollers and, additionally, any and all
`computer-readable media on Which such softWare might be
`embodied. Examples of such computer-readable media
`include, Without limitation, ?oppy disks, hard disks, CDs,
`RAM, ROM, ?ash memory and the like.
`[0020] Exemplary Architecture
`[0021] An exemplary media presentation system 100 for
`presenting information, including media content, is illus
`trated in FIG. 1. As used herein, the terms “present,”“play,”
`and “playback,” refer to the process of shoWing media
`
`content. The media presentation system 100 generally
`includes a host application 102, a U1 104, and an interactive
`media events Wrapper 106. The interactive media events
`Wrapper 106 serves as an interface betWeen the host appli
`cation 102 and an interactive media presentation control 108
`to facilitate presentation of an interactive media segment
`110. The host application 102 hosts the interactive media
`segment 110 in the user interface 104.
`
`[0022] A host application 102 executes on a computing
`device, such as the computer system 600 in FIG. 6, to
`present information, including media content, to a user via
`the user interface (UI) 104. The media content may be video,
`audio, animation, or any other type of content that the UI
`104 is able to present. Thus, the UI 104 is generically
`depicted in FIG. 1 to include any of various hardWare,
`softWare, and/or ?rmWare devices operable to present any
`type of media content. An exemplary implementation of the
`UI 104 includes a video monitor, audio speakers, and video
`and audio buffering or enhancement modules. Details about
`devices and systems that can be implemented in relation to
`the UI 104 and that support communication betWeen the host
`application 102 and the UI 104 in order to present media
`content are described in further detail With respect to FIG.
`6.
`[0023] One implementation of the host application 102 is
`a media player, such as WindoWs Media Player® by
`Microsoft®. In this implementation, the host application 102
`is operable to host media content, such as the interactive
`media segment 110 in the user interface 104. The host
`application 102 manages the manner (eg, timing and loca
`tion) in Which the interactive media segment 110 is pre
`sented using the interactive media events Wrapper 106. The
`interactive media segment 110 might not be designed to
`directly interface With the host application 102. Therefore,
`the interactive media events Wrapper 106 is used to interpret
`messages communicated betWeen the interactive media seg
`ment 110 and the host application 102.
`
`[0024] The interactive media segment 110 is an item of
`media content. By Way of example, the interactive media
`segment 110 might be a movie based on Flash® or Shock
`Wave® technologies. Flash® and Shockwave@ are vector
`based graphics animation technologies that Were developed
`by Macromedia, Inc.®. Movies developed With these tech
`nologies are composed of a number of scenes, or frames,
`de?ned With lines and shapes using vector values, such as
`angles of ascent, and the like. Scenes in the movies can
`contain bitmap images. Although Flash® and Shockwave@
`movies are described in detail herein, it is to be understood
`that other types of interactive media content can be included
`in the interactive media segment 110.
`
`[0025] The interactive media presentation control 108
`controls the presentation of the interactive media segment
`110. The interactive media presentation control 108 also
`responds to commands from the interactive media events
`Wrapper 106. To control presentation of the interactive
`media segment 110, the interactive media presentation con
`trol 108 responds to a number of commands including, but
`not limited to, load, start, and/or stop.
`[0026] The interactive media presentation control 108
`corresponds to the content type of the interactive media
`segment 110. Thus, for example, if the interactive media
`segment 110 is a Flash® movie, the interactive media
`
`Yamaha Corporation of America Exhibit 1017 Page 9
`
`

`

`US 2004/0267899 A1
`
`Dec. 30, 2004
`
`presentation control 108 may be a Macromedia Flash
`Player® or an ActiveX Flash control. One implementation
`of the control 108 continuously loops sequentially through
`the scenes in the interactive media segment 110. In this
`implementation, as soon as the last scene in the interactive
`media segment 110 has ?nished playing, the control 108
`starts again at the ?rst scene in the interactive media segment
`110.
`
`[0027] Is As discussed in further detail beloW, playing of
`the interactive media segment 110 need not be continuous.
`Various exemplary methods and interfaces are described
`beloW that facilitate stopping the playback of the interactive
`media segment 110. The methods and interfaces may be
`employed effectively to stop playback of the interactive
`media segment 110 even When the interactive media seg
`ment 110 has been designed for continuous play. As dis
`cussed throughout herein, stopping the play of the interac
`tive media segment 110 enables the host application 102 to
`incorporate the interactive media segment 110 into a playlist
`that can be presented to a user via the UI 104.
`
`[0028] Another implementation of the interactive media
`presentation control 108 is operable to begin playing the
`interactive media segment 110 automatically Without being
`prompted, after the interactive media segment 110 is loaded.
`Exemplary operations and interfaces are discussed beloW,
`Which enable the interactive media events Wrapper 106 to
`postpone playback of the interactive media segment 110.
`Such exemplary operations and interfaces enable the host
`application 102 to preroll the interactive media segment 110,
`When played in conjunction With a playlist.
`
`[0029] As discussed in more detail beloW, one implemen
`tation of the interactive media events Wrapper 106 translates
`messages and/or events from the host application 102 into
`messages sent to the interactive media presentation control
`108 and vice versa. The host application 102 is operable to
`respond to events related to presentation of the interactive
`media segment 110 and/or user interaction. The host appli
`cation 102 receives events, analyZes events, determines the
`appropriate response(s) to the events, and responsively ini
`tiates the appropriate actions. For example, during presen
`tation of interactive media segment 110, a user may select
`“stop” on the UI 104, Which causes a “stop” event to be sent
`to the host application 102. In response to receipt of the
`“stop” event, the host application 102 passes the stop event
`to the interactive media events Wrapper 106 to stop presen
`tation of the interactive media segment 110.
`
`[0030] The host application 102 has access to a playlist
`112, Which the host application 102 uses to present media
`content to a user via the UI 104. The exemplary playlist 112
`is a ?le having one or more references 114 to one or more
`associated media segments, such as the interactive media
`segment 110. The playlist 112 may include information
`about the referenced media segment(s), such as titles,
`authors, time of play, order or play, creation time, and the
`like. Exemplary contents and formats of the playlist 112 are
`discussed in further detail beloW With respect to FIG. 2.
`
`[0031] The playlist 112 may be a client-side playlist or a
`server-side playlist. A client-side playlist resides locally at
`the computer on Which the host application 102 executes.
`The locally resident client-side playlist 112 may be doWn
`loaded from a remote computer or obtained from some other
`source. A server-side playlist resides on a remote computer,
`
`such as a server that communicates With the host application
`102 over a netWork. In a server-side playlist implementation,
`the host application 102 accesses the playlist 112 and the
`playlist references 114 by sending requests over the netWork
`to the server.
`
`[0032] As shoWn in FIG. 2, one particular implementation
`of the playlist 112 is an .ASX ?le 200. The .ASX ?le 200
`includes a number of exemplary references 202 that each
`refer to an associated media segment. The exemplary refer
`ences 202 indicate the locations of the associated media
`segments, so that the media segments can be retrieved and
`played. In the implementation depicted in FIG. 2, the
`references 202 are uniform resource locators (URLs).
`
`[0033] In FIG. 2, the reference “http://WWWdomainname
`.com/video.Wmv” refers to a WindoWs Media Movie ?le
`located at a site on the Internet given by a Hypertext
`Transport Protocol (HTTP) address. The reference “http://
`WWW.domainname.com/?ash.sWf” refers to a Flash® movie
`located at the same site on the Internet. The reference
`“http://WWW.domainname.com/audio.Wma” refers to a Win
`doWs Media Audio ?le located at the same site on the
`Internet. A referenced media segment in the .ASX ?le 200
`may be referred to as a playlist entry.
`
`[0034] In another implementation of the .ASX ?le 200, the
`media segments referred to need not be located at the same
`locations, and need not be located at remote sites as shoWn
`in FIG. 2. For example, another implementation of the .ASX
`?le 200 may include references to media segments located
`on an Intranet or a proprietary netWork. In addition, the
`references 202 may refer to other playlists. Thus, the .ASX
`?le 200 may have one or more playlists embedded in the
`.ASX ?le 200.
`
`[0035] In addition, each of the referenced media segments
`in the .ASX ?le 200 may have one or more media segments
`embedded Within it. If a media segment has an embedded
`media segment, the tWo media segments need not be of the
`same media type or format. For example, a Flash movie
`could be embedded in a QuickTime® media segment. The
`referenced media segment having a different type of embed
`ded media is referred to as mixed media.
`
`[0036] The exemplary .ASX ?le 200 includes an exem
`plary event identi?er 204. The event identi?er 204 has an
`associated name, “Intro.” In a Flash movie, events can be
`issued. The events have names. If, during playback of a
`Flash movie, an event With the name “Intro” is issued, the
`host application Will ?nd the event identi?er 204 in the .ASX
`?le 200. The host application Will then present the media
`segment referenced by an entry reference 206 associated
`With the event identi?er 204. Thus, as shoWn in FIG. 2, the
`media segment “http://WWW.domainname.com/Flashin
`tro.sWf” Will be presented When a Flash movie issues the
`“Intro” event. A directive, “Resume”, is provided With the
`event identi?er 204, Which directs the host application on
`hoW to proceed after the media segment in the event
`reference 206 is complete. Resume directs the host appli
`cation to continue playing the Flash movie that issued the
`event.
`
`[0037] Referring again to FIG. 1, regardless of Where the
`exemplary playlist 112 physically resides, and regardless of
`the particular format of the references 114 or location of the
`referenced media segments, the host application 102 reads
`
`Yamaha Corporation of America Exhibit 1017 Page 10
`
`

`

`US 2004/0267899 Al
`
`Dec. 30, 2004
`
`the references 114 from the playlist 112 and manages the
`presentation of media segments associated With the refer
`ences 114. For example, the host application 102 determines
`that a reference 114 refers to the interactive media segment
`110, retrieves the interactive media segment 110 from a
`location indicated by the associated reference 114, and hosts
`the interactive media segment 110.
`
`[0038] In one implementation of the host application 102,
`the host application 102 instantiates the interactive media
`presentation control 108 and the interactive media events
`Wrapper 106. In another implementation, the interactive
`media events Wrapper 106 is an interface included in the host
`application 102. Exemplary operations and interfaces
`employed by the interactive media events Wrapper 106, the
`host application 102, and the interactive media presentation
`control 108 are discussed in further detail beloW.
`
`[0039] FIG. 3 illustrates an exemplary interactive media
`events Wrapper 300 to facilitate communication betWeen an
`interactive media presentation control (e.g., the interactive
`media presentation control 108, FIG. 1) and a host appli
`cation (e.g., the host application 102, FIG. 1) using a playlist
`(e.g., the playlist 112, FIG. 1; the .ASX ?le 200, FIG. 2).
`Generally, the interactive media events Wrapper 300
`includes a number of functions that can be called by the host
`application and/or the interactive media presentation con
`trol. The interactive media events Wrapper 300 also includes
`a number of functions that the interactive media events
`Wrapper 300 calls to send messages to the host application
`and/or the interactive media control. It is to be understood
`that the exemplary functions illustrated in FIG. 3 are not the
`only functions that the Wrapper 300 may employ.
`
`[0040] The interactive media events Wrapper 300 also
`includes logic and data for interpreting messages from the
`interactive media presentation control and responsively ?r
`ing appropriate event(s) to the host application. In addition,
`the interactive media events Wrapper 300 interprets com
`mands from the host application and responsively sends an
`appropriate command to the interactive media presentation
`control. An event is any occurrence or happening of signi?
`cance to a task or program, such as the completion of loading
`of an interactive media segment. Firing of an event refers to
`issuing a noti?cation of the event.
`
`[0041] The exemplary interactive media events Wrapper
`300 shoWn in FIG. 3 implements an interface called
`ISWFVelperEvents Which Was designed for Flash® tech
`nology. The ISWFHelperEvents interface includes an
`OnReadyStateChange(neWState) function 302, an OnPro
`gress(percentDone) function 304, and a FSCommand(com
`mand, args) function 306.
`
`[0042] The OnReadyStateChange(neWState) function 302
`can be called by the Flash control When the ready state of the
`control changes. In one implementation, the neWState
`parameter can take on the folloWing values:
`[0043] 0=Loading
`[0044] 1 =UninitialiZed
`
`[0045] 2=Loaded
`
`[0046] 3=Interactive
`[0047] 4=Complete
`
`[0048] The OnProgress(percentDone) function 304 can be
`called by the Flash control as a Flash® movie is doWnload
`ing. The percentDone parameter gives the percentage of the
`movie doWnloaded so far.
`
`[0049] The FSCommand(command, args) function 306
`can be called by the interactive media presentation control to
`communicate events to the Wrapper 300. The events origi
`nate in the interactive media segment itself. For example, an
`author of a Flash® movie can embed a script Within the
`movie, Which can be used to notify the Flash control of
`events. When the Flash ( movie calls the Flash control With
`an event, the Flash control can call the FSCommand func
`tion 306 in the Wrapper 300 to notify the Wrapper 300 of the
`event. The FSCommand function 306 takes tWo arguments,
`the ?rst is a string Which represents a command or event, the
`second is a string representing related parameters.
`
`[0050] The FSCommand function 306 can be used to
`communicate information from a media segment to appli
`cations outside the host application. Applications can be
`designed to “listen” to events from the host application. The
`host application forWards received events on to the listening
`applications. Based on the received events, the listening
`applications can responsively perform a prede?ned task. For
`example, the WindoWs Media Player® can forWard, or issue
`(i.e., ?re), an event from a playing Flash movie to another
`listening application, Which executes a task based on the
`event. Events can be customiZed to a designer’s particular
`application. The ‘args’ parameter can be used to indicate a
`particular script to execute in response to the event. The
`FSCommand function 306 may be used to notify the Wrap
`per 300 of an “EndofPlayback” event When the last scene in
`the Flash® movie has ?nished playing. The function call
`made by the Flash control in this example is FSCommand
`(WMPEndPlayback, args). In response to receiving the
`function call, the Wrapper 300 ?res EndofPlayback to the
`host application using a Fire(EndofPlayback) function 308.
`The Fire(EndofPlayback) function 308 noti?es the host
`application that the Flash movie has completed, at Which
`time the host application can present a next media segment
`in a playlist. In this situation, the “args” parameter may be
`ignored by the Wrapper 300.
`
`[0051] Other types of events that can be ?red by a control
`using the FSCommand function 306 are an EndofBuffering
`event and an EndofStreaming event. A control ?res the
`EndofBuffering event after the control has ?nished buffering
`a portion of the media segment in response to a preroll
`command (see the preroll command 310 beloW). The End
`ofStreaming event can be ?red by a control to indicate that
`all of a media segment has been buffered.
`
`[0052] A preroll command 310 can be called by the host
`application to preroll the Flash® movie. When the Wrapper
`300 receives the preroll command 310, the Wrapper 300 calls
`a load( ) command in the Flash control to load the Flash®
`movie. In response to the load() command, the Flash control
`begins loading the Flash® movie. As used herein, “buffer
`ing” and “loading” are used interchangeably. Loading and
`buffering refer to copying at least a portion of the Flash®
`movie from some source, such as a remote computer, into
`memory, such as Random Access Memory (RAM), for
`execution. The Wrapper 300 then employs one or more
`operations to postpone the Flash control from automatically
`playing the Flash® movie after the movie is loaded. Exem
`
`Yamaha Corporation of America Exhibit 1017 Page 11
`
`

`

`US 2004/0267899 A1
`
`Dec. 30, 2004
`
`plary operations for postponing playback of the Flash®
`movie are discussed in further detail below.
`
`[0053] The Wrapper 300 is noti?ed that at least a portion
`of the Flash® movie has ?nished buffering When the Wrap
`per receives a call to the OnReadyStateChange function 302
`With any of the following parameters:
`[0054] 2=Loaded
`[0055] 3=Interactive
`[0056] 4=Complete
`[0057] In one implementation, the Wrapper 300 facilitates
`prerolling of an interactive media segment based on control
`calls to the OnProgress function 304. The OnProgress func
`tion 304 takes an input parameter “percentDone,” Which
`indicates the percent of the interactive media segment that
`has been buffered. When the percentDone value reaches a
`predetermined minimum buffer value, a sufficient amount of
`the interactive media 15 segment has been buffered for
`smooth playback. When the Wrapper 300 receives a call to
`the OnProgress function 304, in Which the percentDone
`parameter is equal to or greater than the minimum buffer
`value, the Wrapper 300 can call a Fire(EndofBuffering)
`function 312 to notify the host application that the interac
`tive media se

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket