After everything has been configured, you are ready to begin publishing your content. If you are broadcasting live content, you may even want to archive your stream for rebroadcast at a later date. The following examples show you how to start your new broadcast publishing point and begin archiving your streamed content.
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop
Imports System.Runtime.InteropServices
' Declare variables.
Dim Server As WMSServer
Dim BCPubPoint As IWMSBroadcastPublishingPoint
Try
' Create the WMSServer object.
Server = New WMSServer()
' Retrieve a broadcast publishing point.
BCPubPoint = Server.PublishingPoints.item ("NewPubPointVI")
' Enable the archiving plug-in.
BCPubPoint.BroadcastDataSinks.Item("WMS Archive Data Writer").Enabled = True
' Initialize the publishing point and start broadcasting.
BCPubPoint.Start()
' Start archiving the broadcast data locally for rebroadcast.
BCPubPoint.StartArchive()
Catch errCom As COMException
' TODO: Handle COM exceptions.
Catch err As Exception
' TODO: Exception handler goes here.
Finally
' TODO: Clean-up code goes here.
End Try
C# Example
using Microsoft.WindowsMediaServices.Interop;
using System.Runtime.InteropServices;
// Declare variables.
WMSServer Server;
IWMSBroadcastPublishingPoint BCPubPoint;
try
{
// Create the WMSServer object.
Server = new WMSServerClass();
// Retrieve a broadcast publishing point.
BCPubPoint =
(IWMSBroadcastPublishingPoint)Server.PublishingPoints["NewPubPointIV"];
// Retrieve the plug-in to be configured.
for (int i = 0; i< BCPubPoint.BroadcastDataSinks.Count; i++)
{
if ("WMS Archive Data Writer" ==
BCPubPoint.BroadcastDataSinks[i].Name)
{
BCPubPoint.BroadcastDataSinks[i].Enabled = true;
// Initialize the publishing point and start broadcasting.
BCPubPoint.Start();
// Start archiving the boradcast data locally for rebroadcast.
BCPubPoint.StartArchive();
break;
}
}
}
catch (COMException comExc)
{
// TODO: Handle COM exceptions.
}
catch (Exception exc)
{
// TODO: Exception handler goes here.
}
finally
{
// TODO: Clean-up code goes here.
}
C++ Example
#include <windows.h>
#include <atlbase.h> // Includes CComBSTR.
#include "wmsserver.h"
// Declare variables and interfaces.
IWMSServer *pServer;
IWMSPublishingPoints *pPubPoints;
IWMSPublishingPoint *pPubPoint;
IWMSBroadcastPublishingPoint *pBCPubPoint;
IWMSPlugins *pPlugins;
IWMSPlugin *pPlugin;
HRESULT hr;
CComVariant varIndex;
CComVariant varName;
// Initialize the COM library and retrieve a pointer
// to an 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 IWMSPublishingPoints interface.
hr = pServer->get_PublishingPoints(&pPubPoints);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to a publishing point.
varName = L"NewPubPoint";
hr = pPubPoints->get_Item(varName, &pPubPoint);
if (FAILED(hr)) goto EXIT;
// Query the IWMSBroadcastPublishingPoint interface from
// the publishing point.
hr = pPubPoint->QueryInterface(IID_IWMSBroadcastPublishingPoint,
(void **)&pBCPubPoint);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the collection of
// data sink plug-ins.
hr = pBCPubPoint->get_BroadcastDataSinks(&pPlugins);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the archiving plug-in.
varIndex = "WMS Archive Data Writer";
hr = pPlugins->get_Item(varIndex, &pPlugin);
if (FAILED(hr)) goto EXIT;
// Enable the archiving plug-in.
hr = pPlugin->put_Enabled(VARIANT_TRUE);
if (FAILED(hr)) goto EXIT;
// Initialize the publishing point and start broadcasting.
hr = pBCPubPoint->Start();
if (FAILED(hr)) goto EXIT;
// Start archiving the broadcast data locally for rebroadcast.
hr = pBCPubPoint->StartArchive();
if (FAILED(hr)) goto EXIT;
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.
See Also
Reference
IWMSBroadcastPublishingPoint Interface
IWMSBroadcastPublishingPoint Object (C#)
IWMSBroadcastPublishingPoint Object (Visual Basic .NET)