IWMSActiveStream Interface
The IWMSActiveStream interface contains information about specific audio and video streams in the active media element. The IWMSActiveMediaIWMSActiveMedia Interface provides information about the active element.
In addition to the methods inherited from IDispatch, the IWMSActiveStream interface exposes the following methods.
Method |
Description |
---|---|
get_BitRate |
Retrieves the maximum bit rate of a stream. |
get_Name |
Retrieves the stream name. |
get_Type |
Retrieves an enumeration value that indicates whether the stream is audio or video. |
Example
The following example illustrates how to retrieve a pointer to an IWMSActiveStream 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;
IWMSActiveStreams *pActiveStreams;
IWMSActiveStream *pActiveStream;
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;
// Retrieve a pointer to the IWMSActiveStreams interface
// and retrieve the total number of active streams.
hr = pActiveMedia->get_Streams(&pActiveStreams);
if (FAILED(hr)) goto EXIT;
hr = pActiveStreams->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;
// Retrieve information about each active stream.
for (int x = 0; x < lCount; x++) {
// Retrieve a pointer to the IWMSActiveStream interface.
varIndex = x;
hr = pActiveStreams->get_Item(varIndex, &pActiveStream);
if (FAILED(hr)) goto EXIT;
// Release temporary COM objects.
pActiveStream->Release();
}
}
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.