[DispIdAttribute(1)]
bool Overwrite {get; set;}
True if the DVD writer will delete (overwrite) the existing DVD image at the next write operation. False if the DVD writer will append new titles to the existing DVD image at the next write operation.
Gets or sets a value that indicates whether the DVD writer will delete (overwrite) the existing DVD image at the next write operation. In order to add a new title to the DVD image that has been created, overwriting must be disabled before writing the image. To disable overwriting, set this property to False before starting the next conversion.
using Leadtools.Multimedia;
using LeadtoolsMultimediaExamples.Fixtures;
public bool _result = false;
public ConvertCtrlForm _form = new ConvertCtrlForm();
private ConvertCtrl _convertCtrl = null;
private LTDvdWriter _dvdWriter = null;
public void DvdWriterExample()
{
// reference the convert control
_convertCtrl = _form.ConvertCtrl;
// source files for DVD content
string inFile1 = Path.Combine(LEAD_VARS.MediaDir, "DaDa_CMP.avi");
string inFile2 = Path.Combine(LEAD_VARS.MediaDir, "DaDa_CMW.avi");
string inFile3 = Path.Combine(LEAD_VARS.MediaDir, "DaDa_J2K.avi");
string inFile4 = Path.Combine(LEAD_VARS.MediaDir, "Test_VideoStabilizer.avi");
string backgroundImageFile = Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg");
string outFile = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_DvdWriterExample_DVD");
try
{
_dvdWriter = null;
_convertCtrl.Preview = true;
_convertCtrl.PreviewVisible = true;
// setup the converter
_convertCtrl.TargetFormat = TargetFormatType.DVD;
_convertCtrl.VideoCompressors.Mpeg2.Selected = true;
_convertCtrl.AudioCompressors.MpegAudio.Selected = true;
// Create a DVD image with 2 titles, each contains 2 chapters:
// Source video
_convertCtrl.SourceFile = inFile1;
// Destination image folder
_convertCtrl.TargetFile = outFile;
// Retrieve the DVD Writer interface
_dvdWriter = _convertCtrl.GetSubObject(ConvertObject.Sink) as LTDvdWriter;
_dvdWriter.RemoveAllMenuTitles();
_dvdWriter.MenulessTitlePlay = false;
// Set the TitleBreak property to false.
// This will prevent the title from being written immediately after the conversion
_dvdWriter.TitleBreak = false;
_dvdWriter.AddMenuTitle("Title 1", -1);
// Write the first chapter in the first title
_convertCtrl.StartConvert();
while (_convertCtrl.State != ConvertState.Stopped)
Application.DoEvents();
_convertCtrl.ResetSource();
int highPart = 0;
int lowPart = _dvdWriter.GetBytesWritten(out highPart);
Int64 written = highPart << 32 | lowPart;
_convertCtrl.SourceFile = inFile2;
_convertCtrl.StartConvert();
while (_convertCtrl.State != ConvertState.Stopped)
Application.DoEvents();
_convertCtrl.ResetSource();
// Prepare for the second title
// Set the TitleBreak property to TRUE, so the current title can be flushed
_dvdWriter.TitleBreak = true;
// Disable Overwrite so the title will be appended to an existing dvd image
_dvdWriter.Overwrite = false;
_dvdWriter.MenulessTitlePlay = false;
// Set the TitleBreak property to FALSE.
// This will prevent the title from being written immediately after the conversion
_dvdWriter.TitleBreak = false;
_dvdWriter.AddMenuTitle("Title 2", -1);
// Write the first chapter in the second title
_convertCtrl.SourceFile = inFile3;
_convertCtrl.StartConvert();
while (_convertCtrl.State != ConvertState.Stopped)
Application.DoEvents();
_convertCtrl.ResetSource();
// Write the second chapter in the second title
_convertCtrl.SourceFile = inFile4;
_convertCtrl.StartConvert();
while (_convertCtrl.State != ConvertState.Stopped)
Application.DoEvents();
_convertCtrl.ResetSource();
// Close the second title
_dvdWriter.TitleBreak = true;
_dvdWriter.TitleMenu = true;
_dvdWriter.MenuLoop = true;
_dvdWriter.MenulessTitlePlay = false;
// Write the second chapter in the second title
_convertCtrl.SourceFile = backgroundImageFile;
ChangeStillImageDuration(1.0);
_convertCtrl.StartConvert();
while (_convertCtrl.State != ConvertState.Stopped)
Application.DoEvents();
_convertCtrl.ResetSource();
_dvdWriter.TitleMenu = false;
_dvdWriter.Overwrite = false;
_convertCtrl.ResetTarget();
_convertCtrl.ResetSource();
// done, free COM object
Marshal.ReleaseComObject(_dvdWriter);
_dvdWriter = null;
// set the result
_result = true;
}
catch (Exception ex)
{
_result = false;
}
}
private void ChangeStillImageDuration(double duration)
{
ILTStlImgRd pStlImgRd;
try
{
pStlImgRd = _convertCtrl.GetSubObject(ConvertObject.SourceFilter) as ILTStlImgRd;
if (pStlImgRd != null)
{
// get the current menu duration
double currentDuration;
currentDuration = _convertCtrl.Duration;
if (currentDuration * 2 <= duration)
pStlImgRd.Loop = (int)(duration / currentDuration + 0.5);
}
}
catch
{
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
public const string MediaDir = @"C:\LEADTOOLS23\Media";
}