However, MPC is also fully customizable, and you can add codec support either system-wide or locally in the MPC installation. You’ll find support for most major video and audio codes included with the default installation. The project was a great success by any measure, and perhaps what’s most impressive about MPC is that it’s remained true to that original design goal more than a decade later despite the addition of many sophisticated features that let it remain a leading choice for multimedia playback despite stiff competition.Ī key component of MPC is its approach to supporting multimedia formats.
The goal was to create a multimedia solution that mimicked WMP 6.4 in all the best ways. MPC was developed as a response to that change under the GNU General Public License. The problem with that for many users was that it sacrificed simplicity, efficiency and customizability in the process. The design goal shifted more toward being a one-in-all home theater solution. Beyond 6.4, WMP became a heavyweight application. Up until version 6.4, WMP was a streamlined multimedia solution that performed efficiently and gave users a lot of control.
In order to appreciate Media Player Classic or MPC, one must appreciate the evolution of Windows Media Player or WMP. See the RemoteSkin sample for more information.Media Player Classic is a compact media player, available as both a 32- and 64-executable, that delivers a lightweight multimedia solution that resembles the beloved Windows Media Player 6.4.
The Windows Media Player SDK setup package installs a sample that demonstrates applying a skin to the Windows Media Player control.
Because the ayerApplication property cannot be accessed by skins, you must use this global attribute when you want your skin code to manage docking and undocking. Your skin can then make calls to the scriptable object by using the name specified as though it were a global attribute similar to the player global attribute.Ī skin applied to a remoted Windows Media Player control can access the PlayerApplication object using another global attribute called playerApplication. If you want to provide a scriptable object for communication between your skin and your program, pass a name and a pointer to an IDispatch pointer as the two out parameters of the IWMPRemoteMediaServices::GetScriptableObject method. Specify the path and file name of the skin definition file to use by returning it from the IWMPRemoteMediaServices::GetCustomUIMode method. To switch the Windows Media Player control to skin mode, call the IWMPPlayer::put_uiMode method, passing in a value of "custom". To disable remoting, simply pass a value of "Local" as the out parameter of the GetServiceType method, and return an HRESULT of E_NOTIMPL from the GetApplicationName method. Although you can use skins with the control and remote the control at the same time, you can use this interface to enable either feature without enabling the other. To enable skin mode for the Windows Media Player control, your program must implement the IWMPRemoteMediaServices interface. Skin code that you design specifically for C++ programs can interact with your programs through a scriptable object that your program can provide.
You can also reuse skins originally designed for use by the standalone Player in skin mode. Skins provide an easy way to keep your user interface code and your main program code separate so that they can be maintained and developed independently. Using Microsoft JScript, you can specify the behavior of these components and manipulate the Windows Media Player control without the overhead of C++ and COM syntax. A skin definition file is an XML-based document specifying the layout of standard and customizable UI components and any accompanying graphics. When you embed the Windows Media Player control in a C++ program, you can customize the Player user interface (UI) by applying a skin definition file to it.