MenuLoop Property

Summary
Gets or sets a value that indicates whether the menu background loops continuosly.
Syntax
C#
C++/CLI
[DispIdAttribute(12)] 
bool MenuLoop {get; set;} 
[DispIdAttribute(12)] 
property bool MenuLoop { 
   bool get(); 
   void set (    bool ); 
} 

Property Value

True if the menu background loops continuously. False if the menu background video is played only once. This is the default value.

Remarks

Gets or sets value that indicates whether the menu background loops continuously. Do not set this property to True if the menu background is a still image. If the background is a still image, there is no reason to loop since the image never changes.

Do not use the menu loop if the background contains a very short video. Some DVD drives take some time to restart playing the background and if it is a short video that can cause undesired effects. If you still want to use menu loop with a short video clip, obtain better results by concatenating the clip several times and using the longer clip as a menu. For example: To use a 1-sec clip as the menu in a continuous loop. Concatenate the clip 8 times, creating an 8-sec video clip (the original clip playing 8 times). Now use this 8-sec clip as the background and enable the menu loop.

Example
C#
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:\LEADTOOLS22\Resources\Images"; 
   public const string MediaDir = @"C:\LEADTOOLS22\Media"; 
} 
Requirements

Target Platforms

Help Version 22.0.2022.12.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.