public bool EnableScriptStream { get; set; }
A boolean value that represents whether the script stream is enabled.
using Leadtools;
using Leadtools.Multimedia;
using LeadtoolsMultimediaExamples.Fixtures;
public bool _result = false;
public CaptureCtrlForm _form = new CaptureCtrlForm();
public DateTime _startTime;
CaptureCtrl _capturectrl;
WMScript _mux;
public void WriteScriptStreamExample()
{
_capturectrl = _form.CaptureCtrl;
// reference the capture control
string outFile = Path.Combine(LEAD_VARS.MediaDir, "WriteScriptStream_Dest.wmv");
try
{
_capturectrl.TargetFormat = TargetFormatType.WMVMux;
_capturectrl.TargetFile = outFile;
// set an audio device, use the name of your device here
if (_capturectrl.VideoDevices["Logitech"] == null)
throw new Exception("No USB audio device available");
_capturectrl.VideoDevices["Logitech"].Selected = true;
if (_capturectrl.IsModeAvailable(CaptureMode.Video))
{
_capturectrl.FrameDelay = .033; // 30 frames per second
_capturectrl.TimeLimit = 10; // just 10 seconds of capture time
_capturectrl.UseTimeLimit = true;
// call ReadyCapture, so the target object is added
_capturectrl.ReadyCapture(CaptureMode.Video | CaptureMode.InhibitRun);
// get the scripter object
_mux = _capturectrl.WMScripter;
if (_mux == null)
return;
// enable the script stream
_mux.EnableScriptStream = true;
// subscribe to the complete event
_capturectrl.Complete += new EventHandler(CaptureCtrl_Complete);
// subscribe to the error abort event
_capturectrl.ErrorAbort += new ErrorAbortEventHandler(CaptureCtrl_ErrorAbort);
// set the start time
_startTime = DateTime.Now;
// set a timer so we can write the Script commands every second
_form.TestTimer.Interval = 1000;
_form.TestTimer.Tick += new EventHandler(TestTimer_Tick);
_form.TestTimer.Start();
// start the capture process
_capturectrl.StartCapture(CaptureMode.Video);
// we'll loop on the state and pump messages for this example.
// but you should not need to if running from a Windows Forms application.
while (_capturectrl.State == CaptureState.Running)
Application.DoEvents();
}
}
catch (Exception)
{
return;
}
// we'll loop on the state and pump messages for this example.
// but you should not need to if running from a Windows Forms application.
while (_capturectrl.State == CaptureState.Running)
Application.DoEvents();
_result = true;
}
public void TestTimer_Tick(object sender, EventArgs e)
{
// stop the capture
try
{
double elapsedTime = (DateTime.Now - _startTime).TotalMilliseconds / 1000;
String sz = String.Format("Sample caption script at {0} seconds", elapsedTime);
_mux.WriteScriptStream("caption", sz, elapsedTime);
}
catch (Exception)
{
_result = false;
_capturectrl.StopCapture();
}
}
public void CaptureCtrl_Complete(object sender, EventArgs e)
{
// set result
_result = true;
// the capture has finished, do not write scripts anymore
// Note that since the capture has finished automatically, I do not need to call _mux.CloseScriptStream()
_form.TestTimer.Stop();
}
public void CaptureCtrl_ErrorAbort(object sender, ErrorAbortEventArgs e)
{
// set result
_result = false;
// the capture has finished, do not write scripts anymore
// Note that since the capture has finished automatically, I do not need to call _mux.CloseScriptStream()
_form.TestTimer.Stop();
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\LEADTOOLS22\Media";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document