[DispIdAttribute(13)]
bool MenulessTitlePlay {get; set;}
True if all the titles will be concatenated for playback. The user will not need to play the next title when the currently playing title is finished.
False if the playback will stop after the first (or current) title is finished. The next title does not play automatically. This is the default value.
Gets or sets a value that indicates whether all the titles in the menu-less image will be concatenated for playback. The default value is false. This property affects only images that do not have a menu.
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";
}