Media Player 9.0 Compatibility Issues

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

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.

GUIDs

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.

The Solution

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.

Supported Object Settings

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.

Design-Time Representation

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.

Media Player Object Actions

All of the Media Player actions are still supported with the 9.0 control:

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

Media Player Object Events

All of the Media Player object events are supported when Media Player 9.0 is installed.

%MediaPlayerVersion% Variable

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.

Windows Media Format Files

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):

Conclusion

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.

Additional Resources

The following Internet resources explain more about compatibility issues between the WMP 6.4 control and the 9.0 control:

Compatibility and Future Support for the Windows Media Player ActiveX Control