[DispIdAttribute(2)]bool TitleBreak {get; set;}
True if the title will be closed immediately after the write operation.
False if the title will remain open immediately after the write operation.
Gets or sets a value that determines whether a title is closed immediately after a write operation.
After all the chapters have been added to a title, close the title by setting this property to True. If TitleBreak is set to False, the current title stays open, and each conversion creates a chapter folder.
Temporary files are not copied to the DVD image folder until the TitleBreak property is set to True. If the conversion object is destroyed or the output type is changed before the TitleBreak property gets set to True, the temporary files are deleted and nothing gets written to the DVD image folder. Whenever the TitleBreak property is set to True each conversion creates a new title at the end of the conversion. Also, the moment TitleBreak is set to True, any temporary files created by previous conversions are merged into the same title. Each converted file appears as a different chapter in the same title.
For example, the following sequence:
TitleBreak = True Convert File 1 ' convert file 1 as Chapter 1 Convert File 2 ' convert file 2 as Chapter 2 TitleBreak = True ' Create Title 1 Destroy the converter object
creates a DVD with one title containing two chapters. But this next sequence:
TitleBreak = False Convert File 1 ' convert file 1 as Chapter 1 Convert File 2 ' convert file 2 as Chapter 2 Destroy the converter object
does not create anything.
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 contentstring 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 objectMarshal.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 durationdouble 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";}