Command Reference - Media Player Object
Between versions 4.0.0.0 and 4.0.0.3 of AutoPlay Media Studio, the Media Player Object only supported version 6.x of the Windows Media Player control. With the release of Media Player 9.0, some users started to experience problems with the Media Player Object.
As of version 4.0.0.4, some changes were made to resolve these issues. This document outlines the problem, our solution, and the implications of the new changes.
The problem with the Windows Media Player control stems from the fact that, with the release of Media Player 9.0, Microsoft abandoned the old "version 6.4" object model and implemented a new one that is incompatible with the old one in many ways. Users did not experience any problems with Windows Media Player 7.x and 8.x because, although those versions of the Media Player application used a new version of the OCX control, it did not replace the old version in embedded applications. Specifically, the version 7.x and 8.x controls did not support the IDispatch interface, so any applications (such as AutoPlay Media Studio) that used the ActiveX control were still led to the old 6.4 version of the control.
With Windows Media Player versions 6 through 8, the GUID (Global Unique IDentifier) used to create a Media Player ActiveX control was:
22D6F312-B0F6-11D0-94AB-0080C74C7E95
In versions 6 through 8, Windows Media Player mapped this GUID to msdxm.ocx, and that is the file that AutoPlay Media Studio would use.
Starting with Windows Media Player version 7, Microsoft introduced a new GUID:
6BF52A52-394A-11d3-B153-00C04F79FAA6
In versions 7 and 8, this GUID mapped to the file wmp.ocx. AutoPlay Media Studio would not use this file, even if it was available, because the file did not support an IDispatch interface which was needed for the way AutoPlay Media Studio was programmed in Visual C++.
Windows Media Player 9.0 introduced a new file for the above GUID: wmp.dll. This new ActiveX control properly supports the interfaces that AutoPlay Media Studio needs. However, Windows Media Player 9.0 has also officially made the Windows Media Player 6.4 control obsolete. To support applications that were built for the version 6.4 control, a "proxy" ActiveX control was used to translate the old version 6.4 commands into the new version 9.0 ones. To do this, Window Media Player maps GUID 22D6F312-B0F6-11D0-94AB-0080C74C7E95 to a new file named wmpdxm.dll.
As a result, whenever AutoPlay Media Studio created a Media Player Object, it actually used the new 9.0 control through the proxy interface. This caused problems, however, due to serious incompatibilities between the two controls.
Because of these incompatibilities, some users encountered crashes in the design environment and at run time when Windows Media Player 9.0 was installed.
A solution to this problem was introduced in version 4.0.0.4 of AutoPlay Media Studio. It basically involves adding support for the new Windows Media Player 9.0 control.
Here's how it works: when AutoPlay Media Studio needs to create a Media Player window at design time or run time, it first tries to use the version 9.0 control. If the version 9.0 control is not installed, it attempts to use the version 6.x control instead.
This approach seems to work quite well as far as product stability is concerned. However, it has introduced a few issues that AutoPlay Media Studio users need to be aware of.
Certain Media Player Object settings will not have any effect on a Windows Media Player 9.0 control. Specifically:
|
PROPERTY |
WMP 9.0 |
NOTES |
|
Show controls |
YES |
This will determine whether the control bar is displayed or not. However, this is all of the control that the user has over the control bar customization. |
|
Show position controls |
NO |
The position controls are always displayed in 9.0 when the control bar is visible. |
|
Show tracker control |
NO |
The tracker control is always displayed in 9.0 when the control bar is visible. |
|
Show audio controls |
NO |
The audio controls are always displayed in 9.0 when the control bar is visible. |
|
Show display panel |
NO |
Not supported in 9.0. |
|
Show status bar |
NO |
The status bar is always displayed in 9.0 when the control bar is visible. |
|
Show goto bar |
NO |
Not supported in 9.0. |
|
Show closed captioning display panel |
NO |
Not supported in 9.0. |
|
Customize display colors |
NO |
Not supported in 9.0. |
In addition, the following advanced options are affected:
|
PROPERTY |
WMP 9.0 |
NOTES |
|
Allow change display size |
NO |
Changing the display size is always allowed in version 9.0. |
|
Show context menu |
YES |
|
|
Allow scanning |
NO |
Not supported in 9.0. |
|
Allow click on movie to play/pause |
NO |
Not supported in 9.0. |
|
Automatically start playing media |
YES |
|
|
Automatically rewind when clip is stopped |
YES |
|
AutoPlay Media Studio developers should still set all object options appropriately because the options will be applied if the users do not have Windows Media Player 9.0 installed.
It was not possible to get the Windows Media Player 9.0 control to properly show a specific frame from the movie at design time. It either would not work entirely, or would be so slow in some cases that the feature did not justify the impact on workflow. Therefore, setting the movie to a specific position on the Media Player Object's Properties dialog will not have the same effect if you have the version 9.0 control installed, as it would if you had the version 6.4 control.
All of the Media Player actions are still supported with the 9.0 control:
Media Player Object - Get Property
Media Player Object - Is Visible
Media Player Object - Load
Media Player Object - Pause
Media Player Object - Play
Media Player Object - Seek
Media Player Object - Set Full Screen
Media Player Object - Stop
The only exception is that the Media Player Object - Get Property action does not return all of the open and play states if the version 9.0 control is installed. Specifically:
Open States:
|
OPEN STATE |
WMP 6.0 - 8.0 |
WMP 9.0 |
|
Closed |
YES |
YES |
|
Loading ASK |
YES |
NO |
|
Loading NSC |
YES |
NO |
|
Locating |
YES |
YES |
|
Connecting |
YES |
YES |
|
Opening |
YES |
YES |
|
Open |
YES |
YES |
Play States:
|
PLAY STATE |
WMP 6.0 - 8.0 |
WMP 9.0 |
|
Stopped |
YES |
YES |
|
Paused |
YES |
YES |
|
Playing |
YES |
YES |
|
Waiting |
YES |
YES |
|
Scan Forward |
YES |
YES |
|
Scan Reverse |
YES |
YES |
|
Skip Forward |
YES |
NO |
|
Skip Reverse |
YES |
NO |
|
Closed |
YES |
YES |
All of the Media Player object events are supported when Media Player 9.0 is installed.
In AutoPlay Media Studio versions 4.0.0.0 to 4.0.0.3, the %MediaPlayerVersion% variable would either return 6.x.x.x for Windows Media Player 6-8, or 9.x.x.x for Windows Media Player 9.0. In AutoPlay Media Studio version 4.0.0.4 and later, this variable will properly report versions 6.x.x.x, 7.x.x.x, 8.x.x.x and 9.x.x.x due to the new way the Windows Media Player control is detected.
There are several different codecs available for Windows Media Format files, specifically WMV files. Each version of Windows Media Player seems to introduce a new Windows Media Player codec. There can be problems, however, playing newer codecs on older versions of the Windows Media Player control. For example, a video encoded with the WMV 9.0 format will not play properly in the version 6.4 control.
AutoPlay application authors should be aware of these incompatibilities. Several methods to address this problem include (from best to worst):
Don't use the WMV format at all. This format can be problematic and is not the best choice for playing video from a CD-ROM. It is primarily designed to be a streaming format and can cause a myriad of problems with seeking, loading, etc. We suggest using an AVI or MPEG video for maximum compatibility and best results.
Use the lowest version possible. Use the lowest version of the WMV codec that you can get away with in terms of performance and results. This way you will ensure maximum compatibility.
Require the user to upgrade Windows Media Player. You can detect the user's Windows Media Player version and require them to upgrade their copy of Windows Media Player using the Requirements tab of the Project Settings screen or with actions using the %MediaPlayerVersion% variable.
Version 4.0.0.4 of AutoPlay Media Studio addresses the issues introduced by the release and adoption of Windows Media Player 9.0. With the new Windows Media Player 9.0 support introduced in version 4.0.0.4, users should experience more stability and better results on systems where Windows Media Player 9.0 is installed than they would with previous versions of AutoPlay Media Studio.
The following Internet resources explain more about compatibility issues between the WMP 6.4 control and the 9.0 control:
Introducing the Windows Media Player SDK
Compatibility and Future Support for the Windows Media Player ActiveX Control