IWMSActiveMedia Interface

banner art

Previous Next

IWMSActiveMedia Interface

The IWMSActiveMedia interface provides information about the currently active media element in a playlist. A media element can include both audio and video streams.

In addition to the methods inherited from IDispatch, the IWMSActiveMedia interface exposes the following methods.

Method Description
get_Duration Retrieves the total length of the media element, in milliseconds.
get_Live Retrieves a Boolean value that indicates whether the media element originates from a live source.
get_Streams Retrieves an IWMSActiveStreams interface that contains a collection of the media streams that make up the active media element.
get_TotalPackets Retrieves the total number of data packets contained in the active media element.
GetProperty Retrieves a specific property from the active media element.

Example Code

The following example illustrates how to retrieve a pointer to an IWMSActiveMedia interface.

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
HRESULT             hr;
IWMSServer          *pServer;
IWMSPlayers         *pPlayers;
IWMSPlayer          *pPlayer;
IWMSPlaylist        *pPlaylist;
IWMSActiveMedia     *pActiveMedia;

CComVariant         varIndex;
long                lCount;

// Initialize the COM library and retrieve a pointer
// to the IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
                      NULL,
                      CLSCTX_ALL,
                      IID_IWMSServer,
                      (void **)&pServer);
if (FAILED(hr)) goto EXIT;

// Retrieve a pointer to the IWMSPlayers interface
// and retrieve the number of connected players.
hr = pServer->get_Players(&pPlayers);
if (FAILED(hr)) goto EXIT;
hr = pPlayers->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// If players are connected, retrieve a pointer to
// an IWMSPlayer interface containing the first player.
if (lCount > 0)
{
    varIndex = 0;
    hr = pPlayers->get_Item(varIndex, &pPlayer);
    if (FAILED(hr)) goto EXIT;
}

// Retrieve the playlist for the player.
// NOTE: A valid playlist file is not always returned. This may be
// the case, for example, if the user requested a specific content
// file or if a broadcast publishing point is being used.
hr = pPlayer->get_RequestedPlaylist(&pPlaylist);
if (FAILED(hr)) goto EXIT;
if (pPlaylist != NULL)
{
    // Retrieve a pointer to the IWMSActiveMedia interface.
    hr = pPlaylist->get_CurrentMediaInformation(&pActiveMedia);
    if (FAILED(hr)) goto EXIT;
}

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

See Also

Previous Next