Leadtools.MediaFoundation Namespace > PlayCtrl Class : Duration Property |
'Declaration Public Overridable ReadOnly Property Duration As Double
public virtual double Duration {get;}
Imports Leadtools Imports Leadtools.MediaFoundation Imports LeadtoolsMediaFoundationExamples.Fixtures Public _result As Boolean = False Public _form As PlayCtrlForm = New PlayCtrlForm() Private _duration As Double = 0.0 Private _currentPos As Double = -1 Public Sub PlayExample() ' reference the play control Dim playctrl As PlayCtrl = _form.PlayCtrl ' input file Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi") Try ' set autostart to false playctrl.AutoStart = False ' set the play count to 2 playctrl.PlayCount = 2 ' set our source media file playctrl.SourceFile = inFile ' get the reported duration _duration = playctrl.Duration ' set the playback rate to 2x If playctrl.IsRateSupported(2.0) Then playctrl.Rate = 2.0 End If ' set event handler to get tracking position changes AddHandler playctrl.TrackingPositionChanged, AddressOf PlayCtrl_TrackingPositionChanged ' run it! playctrl.Run() Catch e1 As Exception _result = False End Try ' 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. Do While playctrl.State = PlayState.Running Application.DoEvents() Loop ' set the result to determine if the reported duration ' is the same as the final position from tracking _result = (_duration = _currentPos AndAlso _duration > 0.0) End Sub Private Sub PlayCtrl_TrackingPositionChanged(ByVal sender As Object, ByVal e As TrackingPositionChangedEventArgs) ' get the frame and tracking positions for demonstration only Dim frame As Integer = _form.PlayCtrl.CurrentFramePosition Dim tracking As Integer = _form.PlayCtrl.CurrentTrackingPosition ' get the current position _currentPos = Math.Max(_currentPos, _form.PlayCtrl.CurrentPosition) End Sub Public NotInheritable Class LEAD_VARS Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media" End Class
using Leadtools; using Leadtools.MediaFoundation; using LeadtoolsMediaFoundationExamples.Fixtures; public bool _result = false; public PlayCtrlForm _form = new PlayCtrlForm(); double _duration = 0.0; double _currentPos = -1; public void PlayExample() { // reference the play control PlayCtrl playctrl = _form.PlayCtrl; // input file string inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_Source.avi"); try { // set autostart to false playctrl.AutoStart = false; // set the play count to 2 playctrl.PlayCount = 2; // set our source media file playctrl.SourceFile = inFile; // get the reported duration _duration = playctrl.Duration; // set the playback rate to 2x if (playctrl.IsRateSupported(2.0)) playctrl.Rate = 2.0; // set event handler to get tracking position changes playctrl.TrackingPositionChanged += new TrackingPositionChangedEventHandler(PlayCtrl_TrackingPositionChanged); // run it! playctrl.Run(); } catch (Exception) { _result = false; } // 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 (playctrl.State == PlayState.Running) Application.DoEvents(); // set the result to determine if the reported duration // is the same as the final position from tracking _result = (_duration == _currentPos && _duration > 0.0); } void PlayCtrl_TrackingPositionChanged(object sender, TrackingPositionChangedEventArgs e) { // get the frame and tracking positions for demonstration only int frame = _form.PlayCtrl.CurrentFramePosition; int tracking = _form.PlayCtrl.CurrentTrackingPosition; // get the current position _currentPos = Math.Max(_currentPos, _form.PlayCtrl.CurrentPosition); } static class LEAD_VARS { public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"; }