by John J. Kottler
Throughout this book, you have learned
about Microsoft's ActiveX technology and seen how it can be used to move
Web pages from their current, static state to a new interactive plateau.
However, creating Web pages with fancier interfaces is only part of making
the Web interactive. Although users can now do something on ActiveX-enabled
Web pages, they still want to see, hear, and feel results. To date, one
of the most powerful media tools available is video. With video, you have
the opportunity to see and hear things never before imaginable. Just as
a picture paints a thousand words, sometimes audio and video animation
paint a million.
Yet anyone who has browsed the Internet
through a standard dial-up connection with a modem knows that such capabilities
are beyond their reach. Current technology allows you to view video or
audio information, but only after you have completely downloaded the source
material to your personal computer. Depending on the content and your connection
rate, this can take anywhere from a minute to 30 minutes or more.
In an attempt to make video
and audio look instantaneous, and therefore become more of a reality for
Web pages, Microsoft has introduced a new ActiveX component: ActiveMovie.
Within Internet Explorer 2.x and 3.x, it's already possible to embed Video
for Window files or MIDI (Musical Instrument Digital Interface) sound files
on a page. When Internet Explorer views these pages, these files are immediately
downloaded and displayed within the context of a Web page, like inline
graphics. However, only simple video files can be embedded, ones that aren't
very long and don't require a vast amount of time to download. The ActiveMovie
control allows you to embed video within a Web page, yet offers a higher
degree of control and supports many additional technologies. ActiveMovie
can
be found at Microsoft's Web site: www.microsoft.com.
Video for Windows has been
the long-established standard for playing video content on Windows-based
machines. Although it's quite suitable to use Video for Windows and its
underlying Media Control Interface (MCI) today, newer video technologies
and user expectations are placing higher demands on the development environment.
Although Video for Windows is included with newer operating systems, such
as Windows 95, ActiveMovie will soon become its replacement for many reasons:
As you can see, ActiveMovie gives great value to developers. A sample
application created later in this chapter demonstrates how to use the ActiveMovie
ActiveX control within a Web page to display both video content and streaming
video content.
ActiveMovie makes use of streaming technology
to make video content seem to download faster than it really does. The
technique of streaming data is fairly simple. When a user chooses to view
video content on a Web page, the video viewer is invoked.
The data for the video file then starts to download from the Internet to
the local PC. An important difference is that not all the data needs to
be transferred for the streaming video viewer to start. Instead, only a
few seconds' worth of video is downloaded to begin the playback of the
video. While that video is playing, additional video data is passed from
the Internet to the local PC in the background. The end result is a video
that seems to begin playing almost instantly.
Another benefit of streaming
video is that the video content can be much longer, or even infinite in
length. For instance, with streaming video technology, it's possible to
connect to a live video feed, such as a television or cable channel, at
a site. Programming for that channel can be continuous, and the stream
continues to read data from the Internet as long as it's instructed, since
the data is constantly fed to the video viewer on a user's PC. However,
as you know from browsing the Internet and experiencing delays, this continuous
stream of data can lose its continuity. Most streaming technologies provide
for this situation and either appropriately notify the user or simply "skip"
until the actual data is transferred.
It's also important to notice that since data is streamed into a video
viewer, less disk space is required locally on a user's computer for storing
digital video. Because only a few seconds of video are necessary to start
playback, a small buffer is created on a local hard disk. Old information
in that buffer is cleared out, and new content is replaced as the video
stream plays.
The quality of the video played back on a user's machine is directly
related to the speed at which that person is connected to the Internet.
You can think of the connection between a local PC and the Internet as
a pipe. A pipe can handle only so much water passing through it at a time.
If you try forcing more water through a pipe than what it can handle, water
spills out over the ends of the pipe or the pipe bursts. In the case of
the Internet, if more data is streamed to a local computer than what that
computer's connection can handle, the data "spills", causing
gaps and pauses in content, such as video.
Video requires a large amount of information, which in turn translates
to a vast amount of water to push through a pipe. Typical video content
will easily "spill" when a user is connected to the Internet
by a traditional 28.8K bps modem. The only solution to avoiding spills
is to increase the size of a pipe. Technologies such as ISDN and cable
modems offer larger pipes for denser data like video to flow more freely.
Until these larger pipes are laid through the Internet's plumbing, however,
newer technologies can adjust their content based on the size of the "pipe"
between a computer and the Internet. One example of this is Microsoft's
ActiveMovie Streaming Format (.ASF) files. Using an Editor like ActiveMovie
Stream Editor, a developer can create content that can be streamed and
displayed accurately
by using restricted "pipes".
Creating content that can
be viewed using low-bandwidth connections is certainly a challenge. It's
difficult to determine how much information can be passed at once over
such a connection. Determining how to display the content using the least
amount of the bandwidth is where the problem lies. A 28.8K bps connection
to the Internet translates as a pipe that allows information to flow through
at a rate of 3600 bytes per second. In a world where small and compressed
pictures are easily twice that size, full-motion video through such a pipe
is difficult.
However, Microsoft's ActiveMovie Stream Editor software helps you to
develop content that uses audio and an animated slide show. The trade-off
is a quick connection for media content, but low-quality audio and still
pictures displayed in a sequence. Not exactly as compelling as full-motion
video, but almost as useful.
Once you have installed
the ActiveMovie Stream Editor on your computer, you can begin to create
streaming content for the ActiveMovie control. Figure 10.1 is an example
of the ActiveMovie Stream Editor window with content already added to the
workspace.
Figure
10.1. The ActiveMovie Stream Editor makes creating streaming content
for the Internet easier.
You will quickly notice that the workspace is divided into two regions:
a timeline in the top half of the screen and a list of files for the project
at the bottom of the screen. When you first start the ActiveMovie Stream
Editor, you see a blank workspace. You must first choose the objects you
want to present in the movie, then place them accordingly on
the timeline.
Remember, the
ActiveMovie Stream file is simply a series of still pictures presented
in an orderly fashion. However, you can also add an underlying soundtrack
or voice track. In either case, the audio and picture files must be added
to the ActiveMovie Stream project you're creating. This ActiveMovie Stream
project is then be used to create an ActiveMovie Stream File (.ASF), one
of many file types supported by the ActiveMovie control.
To add a picture or audio file to the project, choose Add Files from
the File menu or click the Add Files button on the Editor's toolbar; this
opens a dialog box that prompts you to choose the audio (.WAV) or picture
(.JPG/.BMP) files to add to the project. The objects you select are then
added to the list at the bottom of the Editor window.
When adding digital audio content to your ActiveMovie
Stream project, you must add files that are compressed using one
of the digital audio compressors installed on your system. If you're using
Windows 95 or Windows NT 4.0, these compression algorithms are included
with the operating system. To convert a digital audio file (.WAV) to one
of these compressed formats, you can simply use the
Sound Recorder application included with Windows 95.
After you've opened the file you want to convert into the Sound Recorder,
then save it using the Save As command from the File menu. When the dialog
box opens asking you to specify the name of the new sound file, click the
Change button at the bottom of the window to change that file's format.
This opens a window, shown in Figure 10.2, where you can select a new format
to use
when saving the audio information.
Figure
10.2. Audio files must be saved in a compressed format, such as ADPCM,
to be used in the ActiveMovie Stream Editor.
Pictures stored in either Windows
Bitmap (.BMP) or JPEG (.JPG) formats may be added to the file. To convert
pictures to these formats, use a program such as Paint Shop Pro, which
is included on this book's CD-ROM. With Paint Shop Pro, you can open a
source graphic, then save it again as either a Windows Bitmap or JPEG
picture.
Once you have added the pictures
and sound files you want to use in the ActiveMovie Stream Editor project,
you can begin coordinating the sound and graphics for your presentation.
This requires scheduling each picture or sound to occur at specific points
in time by using the timeline window near the top of
the Editor's screen.
To schedule a picture
or sound file for a specific point in time, you can simply drag the source
file you want to add from the list of files at the bottom of the Editor
window onto the timeline. Once you have dragged the file onto the timeline,
it's represented by a colored rectangle on the timeline—pictures are green;
sounds are blue. In the example in Figure 10.1, a soundtrack, represented
by a long rectangular bar, occupies the long bottom half of the timeline.
Likewise, the pictures for the presentation are represented by the smaller
rectangles just above the sound clip's rectangle.
Note that the timeline directly relates not only to the length of the
final presentation, but also to the amount of information squeezed through
the pipe at one time. For instance, the sound clip in this example is a
little over twenty-six seconds in length, so the rectangle representing
that sound in the ActiveMovie Stream file is wide enough to occupy twenty-six
seconds on the timeline. Notice also that the height of this sound clip's
rectangle is about half the height of the overall timeline window. The
height of the timeline window represents the total bandwidth
available for content. In this example, the ActiveMovie Stream file is
created to run with a bit rate of 28.8K bps. Therefore, the height of the
timeline indicates the size of the pipe and how much information can be
moved at one time. At a 28.8K bps connection, roughly 3600 bytes can be
moved per second of connect time. In this example, the audio file was compressed
to use roughly 1800 bytes per second, or half the full
bandwidth for the pipe.
The audio file plays constantly throughout the entire presentation,
so half the pipe must be dedicated to playing the audio stream for the
movie. As a result, the remaining portion of the pipe handles the pictures.
In the example shown in Figure 10.1, you will notice that most of the pictures
are displayed for longer than a second, according to the timeline, because
the file size of these pictures is larger than the remaining size of the
pipe. For example, a picture with a file size of 3600 bytes can't possibly
be transferred in a single second, if only 1800 bytes are available per
second in the pipe. Therefore, that image will automatically require at
least two seconds to transfer; this can't be changed unless the bit rate
is altered to accommodate a higher or lower bandwidth.
Pictures are displayed in the order in
which they appear on the timeline. However, since some pictures need a
predetermined amount of time to be transferred and displayed, it's hard
to be creative when coordinating pictures with sound. You might find that
to get the effect you want, you have to make much smaller pictures than
you originally wanted.
Another method of reducing the amount of information passed through
the pipe is to convert the files between compression formats. Often, if
you drag a file from the project list at the bottom of the window onto
the timeline and it requires more bandwidth than the
ActiveMovie Stream can handle, the Editor will automatically prompt you
to convert formats. You can also change the format used to compress data
in the movie by clicking on the picture or sound file in the timeline and
then selecting Convert from the Edit menu. Figures 10.3 and 10.4 illustrate
the windows used for converting
audio clips and pictures, respectively.
Figure
10.3. The ActiveMovie Stream Editor software allows you to convert
audio clips to use other compression formats.
Figure
10.4. Just as you can compress audio, you can also choose to compress
pictures displayed in the ActiveMovie Stream Editor.
After you have arranged
the sound and picture files on your timeline, you can then test the final
output of the movie by choosing Test from the Editor's Stream menu. This
"test" mode will simulate the speed at which pictures are displayed
as if you were connected to the movie using the bit rate you specify. For
instance, if you're creating a 28.8K bps movie, the "test" mode
displays the pictures at the speed in which they would appear if you had
connected and streamed this movie using a modem.
Once you're satisfied with
the movie's presentation, you can build the final ActiveMovie Stream File
(.ASF). Before actually creating the file, you should first verify its
properties. To do this, select Properties from the Editor's File menu.
In the window that opens, you can set general information, such as the
author who created the file, and more detailed information, like the bit
rate for displaying the file. Figure 10.5 shows this Properties dialog
box.
Figure
10.5. You can set several properties for the ActiveMovie Stream before
you build the final file.
After all the properties have been verified, you can create the ActiveMovie
Stream File by choosing Build or Build All from the Stream menu. This final
file (.ASF), as you will see shortly, can then be played by using the ActiveMovie
ActiveX control in the context of a Web page.
Now that you have a familiarity
with what ActiveMovie is and how to create ActiveMovie Stream files, you
could include videos in your own Web pages. Since ActiveMovie is an ActiveX
control, it can easily be embedded in a Web page and controlled through
VBScript. This section explains how to embed an ActiveMovie control, discusses
its properties, methods, and events for other programming languages, such
as Visual Basic, Visual C++, and VBScript, to use, and reviews a complete
example of a Web page with an ActiveMovie control and VBScript.
Since the ActiveMovie control is
simply an ActiveX control, it can be embedded on a Web page just as any
other ActiveX control can. For more information on embedding ActiveX controls
in Web pages, you might want to refer to Chapter 9, "ActiveX Controls
and Visual Basic Script."
To insert an ActiveMovie control, you must use the
<OBJECT> tag within your HTML document for a Web page. Within that
tag lies the class identifier, which indicates that the ActiveMovie ActiveX
control is to be loaded. Again, as with other ActiveX controls, the class
ID for the ActiveMovie control exists in your system registry. By running
the Registry Editor (regedit.exe) included with Windows 95, you may find
the ActiveMovie control under the following directory entry:
My Computer\HKEY_CLASSES_ROOT\AMOVIE.ActiveMovieCtrl\CLSID
The class ID for ActiveMovie may then be used in the <OBJECT>
tag to create the control within the Web page. Listing 10.1 demonstrates
how to embed an ActiveMovie control using the <OBJECT> tag.
<OBJECT
classid="clsid:{05589FA1-C356-11CE-BF01-00AA0055595A}"
id=VideoWindow
width=320
height=340
hspace=20
vspace=0
>
<param name="filename" value="example\jay'288.asf">
<param name="ShowControls" value="false">
<param name="Balance" value="0">
</OBJECT>
As you can see in Listing 10.1, several parameters may be altered when
the object is displayed initially on the Web page. These parameters are
essentially the properties for the ActiveMovie control, and they can be
easily set when the object is first loaded and easily changed through VBScript,
as explained in
the following section.
Once the ActiveMovie control has
been added to a Web page and given an appropriate ID to use within VBScript,
that control can be easily modified or monitored through code created in
VBScript for the Web page. Figure 10.6 illustrates a sample Web page containing
an ActiveMovie control. In this example, there is an ActiveMovie window
that displays the movie during playback, as well as three buttons to play
the video, play an ActiveMovie stream, or stop the video playback altogether.
In addition to these buttons, there are two sliders that control the volume
and stereo balance of the audio track. These two sliders are created using
VBScript and illustrate some of the dynamism of the ActiveMovie control.
Listing 10.2 is a complete listing of the HTML for
this Web page, including the <OBJECT> definitions for the ActiveMovie
and slider controls, as well as the VBScript needed to handle the events
of sliding the sliders or clicking the buttons. You can see from the source
code that several properties are set for the ActiveMovie control, as well
as methods for running or stopping
the media's playback.
Figure
10.6. ActiveMovie controls can be embedded on a Web page to create
a more dynamic site.
<!-- ActiveMovie Example -->
<HTML>
<TITLE>
ActiveMovie Example
</TITLE>
<BODY>
<OBJECT
classid="clsid:{05589FA1-C356-11CE-BF01-00AA0055595A}"
id=VideoWindow
width=320
height=340
hspace=20
vspace=0
>
<param name="filename" value="skiing.asf">
<param name="ShowControls" value="false">
<param name="Balance" value="0">
</OBJECT>
<P>
<P>
<SCRIPT LANGUAGE="VBS">
sub SetVolume(TheVolume)
VideoWindow.Volume=(TheVolume-9)*250
end sub
sub SetBalance(TheBalance)
VideoWindow.Balance=(TheBalance-1)*10000
end sub
sub BalanceControl_Click()
Call SetBalance(BalanceControl.Value)
end sub
sub VolumeControl_Click()
Call SetVolume(VolumeControl.Value)
end sub
sub PlayAVIContent()
BalanceControl.enabled=true
VolumeControl.enabled=true
VideoWindow.filename="skiing.avi"
VideoWindow.run
Call SetBalance(BalanceControl.Value)
Call SetVolume(VolumeControl.Value)
end sub
sub StopVideoWindow()
VideoWindow.stop
end sub
sub PlayASFContent()
BalanceControl.enabled=false
VolumeControl.enabled=false
VideoWindow.filename="skiing.asf"
VideoWindow.run
end sub
</SCRIPT>
<FORM Name="MyForm">
<INPUT TYPE="BUTTON"
VALUE="Play AVI Video"
NAME="PlayAVI"
onClick="PlayAVIContent"
>
<INPUT TYPE="BUTTON"
VALUE="Play ActiveMovie Stream"
NAME="PlayASF"
onClick="PlayASFContent"
>
<INPUT TYPE="BUTTON"
VALUE="STOP"
NAME="StopIt"
onClick="StopVideoWindow"
>
</FORM>
<P>Stereo Balance:<BR>
<OBJECT
classid="clsid:{373FF7F0-EB8B-11CD-8820-08002B2F4F5A}"
id=BalanceControl
width=320
height=25
hspace=20
vspace=0
>
<!-- Set the range for the slider from 0-2 (3 values total)
3 values are used for: left, center and right -->
<param name="Max" value=2>
<param name="Value" value=1>
<param name="LargeChange" value=1>
<param name="Enabled" value="false">
</OBJECT>
<P>
<P>Volume:<BR>
<OBJECT
classid="clsid:{373FF7F0-EB8B-11CD-8820-08002B2F4F5A}"
id=VolumeControl
width=320
height=25
hspace=20
vspace=0
>
<!-- Set the range for the slider from 0-9 (10 values total) -->
<param name="Max" value=9>
<param name="Value" value=5>
<param name="LargeChange" value=2>
<param name="Enabled" value="false">
</OBJECT>
</BODY>
</HTML>
Since the ActiveMovie control is an ActiveX control, it features properties,
methods, and events just as other ActiveX controls do. Through these object-oriented
techniques, a VBScript routine can interact with the ActiveMovie control.
Several properties are associated
with an ActiveMovie control. The following list briefly describes each
property and its function; they can all be either set or read by a VBScript
routine.
AllowChangeDisplayMode If you want
someone viewing the video to have the ability to change the display mode,
set this property to TRUE. There are two modes available: by time or by
frame. The ability to change the display mode is located on a context menu,
as shown in Figure 10.7.
Figure
10.7. The ActiveMovie control supports a context menu, available by
right-clicking within the control.
AllowHideControls Similar to AllowChangeDisplayMode,
you can determine whether you want the user to have the ability to hide
or display the VCR-like buttons at the bottom of the ActiveMovie window.
Hiding or displaying the controls can be done by using a context menu like
that shown in Figure 10.7.
AllowHideDisplay This property
determines whether the user playing a video file can display or hide the
time display at the bottom of the ActiveMovie window. The display may be
toggled on or off by using a menu choice in the context menu shown in Figure
10.7.
Author Holds the name of
the author for the video clip.
AutoRewind If you want
a video clip to automatically rewind to the starting position after it
has finished playing, you can set this property to TRUE.
AutoStart Once the ActiveMovie
window has been displayed, the movie can automatically begin playing when
this property is set to TRUE. Otherwise, you must start the video manually.
Balance The stereo balance
from left to right of the audio track for an ActiveMovie video can be adjusted
dynamically. Values for this property range from -10000 (far left) to 10000
(far right). A value of 0 indicates a balanced center.
Copyright If the video
clip contains copyright information, it can be extracted by using this
property.
CurrentPosition This property
indicates the current position of the playback in the video stream, which
depends on the mode currently used (frames or time). When this property
is set with a new position, the ActiveMovie player moves to that position
in the video stream.
CurrentState This property
can only be read by VBScript. It indicates the current status of the video
content. The player's state may change when a routine in VBScript issues
an appropriate command or when the user clicks the VCR buttons at the bottom
of the ActiveMovie window. The status returned by this property may be
any of the following:
0 The video is stopped
1 The video is paused
2 The video is playing
Description A brief description
or comment can be attached to the multimedia content.
DisplayBackColor The VCR-like
output for the display of the ActiveMovie window may be altered to use
different colors. This property sets the background color to use for that
display. Color values can be any RGB color between 0 and 16,777,215.
DisplayForeColor Similar to
the DisplayBackColor property, you can set the color to use when painting
the numbers and text displayed in the VCR-like output window of the ActiveMovie
control.
DisplayMode The position of
the content being played may be displayed in measurements of time or frames;
this property is used to change the mode. The following values are used
with this property:
0 Use time for measuring position
1 Use frames for measuring position
Duration The overall length
of the media content can be determined by reading this property. The value
returned indicates the length of the content in seconds.
EnableContextMenu When a
user right-clicks on the ActiveMovie control, a pop-up menu appears containing
options a user can set for media playback. Setting this property to TRUE
allows the user to right-click on the ActiveMovie window and display this
menu. This menu is similar to the one shown in Figure 10.7.
EnablePositionControls With this
property, you can determine whether users have the ability to change the
current position of the video's playback. If this property is set to TRUE,
then a user can "seek" to different positions in the media file;
if this property is FALSE, the respective buttons are disabled in the ActiveMovie
window.
EnableSelectionControls You can establish
starting and ending points for the media loaded in the ActiveMovie control.
The content between these points is then referred to as the "selection".
Additional selection buttons may be enabled or disabled in the ActiveMovie
control to determine whether users can create selection ranges for playback.
If this property is set to TRUE, then these additional buttons will be
enabled. A value of FALSE will disable these buttons.
EnableTracker Near the
playback controls at the bottom of the ActiveMovie window, you may find
a slider control referred to as a "tracker". This control can
be enabled or disabled by setting this property to TRUE or FALSE, respectively.
EventNotification There are
several events associated with the ActiveMovie control. You can choose
which of these events you want to trap in your application with this property.
Each event is identified by a value. To trap multiple events, you may add
those values together and set this property to the resulting value. For
example, if you want to trap both keyboard and mouse clicks, you would
use the value of 8+16, or 24. The following list describes valid events
and their values:
FileName The filename of
the media content to be displayed must be supplied for playback to begin.
This property contains the name of the file to load and display in the
ActiveMovie window. Filenames are either video files (.AVI) or ActiveMovie
Stream Files (.ASF).
FilterGraph In addition
to being able to change volume and stereo balance dynamically, you can
set or change other video playback attributes, such as brightness, contrast,
or other special effects. These effects are established in a filter graph.
If a filter graph has been designed, you may specify using it with this
property.
FilterGraphDispatch To use
ActiveMovie filter graphs, you must provide a IDispatch object pointer.
If you're using filter graphs, you specify this object pointer with this
property.
ImageSourceHeight Video content
is created using varying resolutions for pixel height and width. This property
contains the control's recorded height in pixels. This is not necessarily
the same size as it is when the content is played.
ImageSourceWidth Like ImageSourceHeight, it's possible
to determine the original width for the content displayed in the ActiveMovie
control.
MovieWindowSetting As previously
mentioned, you can play video content
using a different height and width for the window than what it was when
originally recorded. This property allows you to set the method by which
the video playback will be scaled. The following are valid values for this
property:
PlayCount The multimedia
content in an ActiveMovie control can be played repeatedly. This property
establishes the number of times the content will repeat. A value of 0 for
this property indicates that the content should repeat indefinitely.
Rate The media content
in an ActiveMovie window can be played faster or slower than it was originally
intended by adjusting this property. A value of 1.0 indicates that playback
should occur at the original recorded rate. Values higher than 1.0 indicate
faster playback; values lower than 1.0 indicate slower playback. For example,
a value of 2.0 instructs ActiveMovie to play the content at twice its original
speed.
Rating Multimedia content
may be rated. If a particular media file is rated, this property will contain
its rating.
SelectionStart/SelectionEnd Instead of
playing an entire media file from start to finish, you can set up a range
for the playback. These properties indicate where the playback should start
(SelectionStart) and stop (SelectionEnd). When the media content is played,
only data between the start and end positions will be played.
ShowDisplay The VCR display
at the bottom of the ActiveMovie window can be displayed or hidden by setting
this property to TRUE or FALSE, respectively.
ShowPositionControls This property
controls whether the position controls for seeking within a file are displayed
or hidden. Setting this property's value to TRUE will display the position
controls. This is similar to EnablePositionControls; however, this property
controls whether the buttons are displayed or hidden.
EnablePositionControls either disables or enables those buttons.
ShowSelectionControls Like
ShowPositionControls, this property determines whether the additional selection
buttons should be displayed (TRUE) or hidden (FALSE).
ShowTracker The slider
at the bottom of the ActiveMovie window indicates the current position
of the media playback and allows the user to seek to different positions
within the file. This slider can be displayed or hidden by setting this
property to TRUE or FALSE, respectively.
ShowControls All VCR button
controls at the bottom of the ActiveMovie screen can be displayed (TRUE)
or hidden (FALSE) by setting this property appropriately.
Title If the currently
loaded media file has a title, it's stored as the value for this property.
Volume As you can with
balance, it's possible to adjust
the volume of the media's playback dynamically. Volume values range from
-10000 (minimum volume) to 0 (maximum volume).
Besides being able to read and
set properties of an ActiveMovie control, there are several functions or
methods that may be invoked. Unlike properties, these methods instruct
the ActiveMovie control to perform a particular action instead of simply
specifying or retrieving settings. The following is a list of methods available
to VBScript for controlling an ActiveMovie control.
Run This method starts
the playback of a media file. If the file was stopped, then the Run method
starts playing the content again from the beginning or from the beginning
of the selection range. If the content is paused, the Run method will continue
playback from the point at which it was paused.
Stop This method stops
the playback of a media file. When the media content is played again, it
will begin at the start of the file or at the starting point for the selection
range.
Pause This method pauses
the playback of a media file. It's similar to the Stop method, except when
the playback is paused, it can resume from the point at which it was paused.
Earlier you learned
about the property that allows you to specify which events you would like
to receive notification for when they occur. Your VBScript routines can
then handle these events to perform specific actions. The following list
describes the valid events that can be recognized by VBScript for the ActiveMovie
control:
Error() When an error occurs
in the ActiveMovie control, this event can be triggered. If your VBScript
contains a routine to handle this event, you can intercept errors and post
your own messages or design code to act accordingly.
PositionChange() This event
is triggered when a user changes the current position of the media playback
with the tracker control or the seek buttons in the ActiveMovie window.
It is not triggered when the CurrentPosition property is updated through
VBScript.
StateChange() When the
current state of the media playback changes, this event is triggered. A
state change may be the event of stopping a media file being played. The
CurrentState property can be used to determine the current action of the
media player.
Timer() An event can be
triggered on a regular basis as determined by the ActiveMovie control.
Whenever this event occurs, a VBScript routine can be executed.
In this chapter, you have learned about Microsoft's ActiveMovie ActiveX
control and had an opportunity to learn more about using ActiveX as a video
player and controlling playback of media through VBScript. You have also
been introduced to the concept of streaming media content, particularly
designed for low-bandwidth connections, such as those used for Internet
access through a modem. A complete review of the ActiveMovie control interface
would clearly extend beyond the scope of this chapter and certainly this
book. However, you should now be at least acquainted with the technology
and able to use ActiveMovie controls on your own Web pages.
In the next chapters, you will have the opportunity to learn about connecting
Web pages with databases on a Web server (Chapters 12 and 13) and how to
create an original ActiveX control that can be placed on a Web page (Chapter
11).