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 IWMSActiveStreamsIWMSActiveStreams 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
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.