IWMEncSourceGroup.set_AutoArchive
The set_AutoArchive method specifies a value that indicates the nature of the archiving operation if WMEncoder.EnableAutoArchive is set to true.
Syntax
void IWMEncSourceGroup.set_AutoArchive(
WMENC_ARCHIVE_TYPE enumArchiveType,
WMENC_ARCHIVE_OPERATION penumArchiveOp
);
Parameters
enumArchiveType
[in] Specifies a WMENC_ARCHIVE_TYPE enumeration type indicating where content can be archived.
penumArchiveOp
A WMENC_ARCHIVE_OPERATION enumeration type that indicates whether encoded content will be archived when the source group is made active and the encoding session starts.
If this property fails, it returns an error number.
Number | Description |
0xC00D1B77 | You can save encoded content only to a local file. |
0xC00D1B78 | You can only start, stop, or pause the archiving process. |
Return Values
This method does not return a value.
Remarks
Use the set_AutoArchive method to selectively archive source groups. For instance, if you are encoding a static welcome screen, a live presentation and a static goodbye screen, you can utilize disk space more efficiently by only archiving the live presentation. Use the WMEncoder.EnableAutoArchive property to specify whether archiving will automatically occur when the encoding session starts. Use the WMEncoder.Archive method to manually control the archiving process. If both the EnableAutoArchive and set_AutoArchive properties are set to true, archiving automatically starts when encoding of the relevant source group starts.
Example Code
using WMEncoderLib;
try
{
// Create a WMEncoder object.
WMEncoder Encoder;
Encoder = new WMEncoder();
// Declare objects and variables.
IWMEncSourceGroupCollection SrcGrpColl;
IWMEncSourceGroup SrcGrp;
IWMEncSource SrcAud;
IWMEncVideoSource SrcVid;
IWMEncProfileCollection ProColl;
IWMEncProfile Pro;
int i;
int iAudCount;
int iVidCount;
// Create an IWMEncSourceGroupCollection object.
SrcGrpColl = Encoder.SourceGroupCollection;
// Create an IWMEncSourceGroup object.
SrcGrp = SrcGrpColl.Add("SG_1");
// Create an audio and a video source object.
SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
SrcVid = (IWMEncVideoSource)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
// Specify the .avi source file.
SrcAud.SetInput("C:\\filename.avi", "", "");
SrcVid.SetInput("C:\\filename.avi", "", "");
// You can also use the AutoSetFileSource property to
// automatically parse a file and add the source streams
// to the source group.
// SrcGrp.AutoSetFileSource ("C:\\filename.avi");
// Loop through the collection of system profiles to set
// a specific profile into the source group object.
ProColl = Encoder.ProfileCollection;
for (i = 0; i < ProColl.Count; i++)
{
Pro = ProColl.Item(i);
if (Pro.Name == "Windows Media Video 8 for Local Area Network (384 Kbps)")
{
SrcGrp.set_Profile(Pro);
break;
}
}
// Change the name of the source group.
SrcGrp.Name = "Music Only";
// Retrieve the number of audio and video streams
// in the source group.
iAudCount = SrcGrp.get_SourceCount(WMENC_SOURCE_TYPE.WMENC_AUDIO);
iVidCount = SrcGrp.get_SourceCount(WMENC_SOURCE_TYPE.WMENC_VIDEO);
// Remove the video stream. In the current release of the
// Windows Media Encoder SDK, a source group can contain
// at most only one audio, one video, and one script stream.
// You must verify that the count is not 0 before deleting
// the source stream.
if (iVidCount <> 0)
{
SrcGrp.RemoveSource(WMENC_SOURCE_TYPE.WMENC_VIDEO, 0);
}
// Specify automatic archiving when the source group
// is active.
SrcGrp.set_AutoArchive(WMENC_ARCHIVE_TYPE.WMENC_ARCHIVE_LOCAL, WMENC_ARCHIVE_OPERATION.WMENC_ARCHIVE_START);
// Start the encoding process.
SrcGrp.PrepareToEncode(true);
}
catch (Exception e)
{
// TODO: Handle exceptions.
}
Requirements
Reference: Windows Media Encoder
Namespace: WMEncoderLib
Assembly: Interop.WMEncoderLib.dll
Library: WMEncoderLib.dll
See Also