SourceFile Property

Summary
Gets or sets the media source filename, URL or UDP address.
Syntax
C#
VB
C++
[EditorAttribute(System.Type, System.Type)] 
public virtual string SourceFile { get; set; } 
Public Overridable Property SourceFile As String 
public: 
virtual property String^ SourceFile { 
   String^ get(); 
   void set (    String^ ); 
} 

Property Value

A string value representing the source filename.

Remarks

Use this property to set the media source to the specified filename, URL or UDP address. The SourceType will be set to SourceObjectType.File. The filename can be used to indicate a regular file or a network stream. For more details on filename syntax, refer to Source File syntax. Assignment can raise an error exception. For more information, refer to the Error Codes. When you set the source to a URL, setting the property will block waiting until data arrives or the filter's timeout is exceeded. The timeouts can be large (15+ seconds), so setting the source in the main user interface thread might block the app for many seconds. If no data is received, some filters (LEAD MPEG-2 Transport UDP Source and LEAD RTSP Source), will cause a MediaEvent event to be fired every second. The event will have eventCode set to MediaEventCode.EC_LOADSTATUS and param1 will be set to LoadStatusEventCode.AM_LOADSTATUS_WAITING_FOR_DATA. See the MediaEventCode enumeration for more details. You can abort the wait for data by calling ResetSource while processing the event. See LoadStatusEventCode for more details.

For more information, refer to the Error Codes.

Example
C#
VB
using Leadtools; 
using Leadtools.Multimedia; 
using LeadtoolsMultimediaExamples.Fixtures; 
 
public bool _result = false; 
public PlayCtrlForm _form = new PlayCtrlForm(); 
public PlayCtrl _playctrl; 
public PlaySeeking _seekingCaps; 
public TimeSpan _start = TimeSpan.Zero; 
 
public void HasDialogExample() 
{ 
   // reference the play control 
   _playctrl = _form.PlayCtrl; 
 
   // input file for playback 
   string inFile = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi"); 
 
   try 
   { 
      // turn off autostart and auto rewind 
      _playctrl.AutoStart = false; 
      _playctrl.AutoRewind = false; 
 
      // set the source file 
      _playctrl.SourceFile = inFile; 
 
      // show some media info if available 
      ShowMediaInfo(); 
 
      // the HasDialog method tells us that the control 
      // can display the desired settings dialog. 
      // check to see if the video renderer properties dialog is available 
      if (_playctrl.HasDialog(PlayDlg.VideoRenderer)) 
      { 
         // now show it to change some settings 
         _playctrl.ShowDialog(PlayDlg.VideoRenderer, _form); 
         _result = true; 
      } 
 
      // get the source object type 
      SourceObjectType sot = _playctrl.SourceType; 
 
      // check some audio properties 
      bool mute = _playctrl.Mute; 
      int bal = _playctrl.Balance; 
      int vol = _playctrl.Volume; 
 
      // seeking caps - you can use these to enable menu states or toolbar buttons 
      _seekingCaps = _playctrl.CheckSeekingCapabilities(PlaySeeking.Forward | PlaySeeking.Backward); 
 
      // subscribe to the key press event to demo play functions 
      _playctrl.KeyPress += new Leadtools.Multimedia.KeyPressEventHandler(PlayCtrl_KeyPress); 
 
      // start the capture process 
      _playctrl.Run(); 
 
      // 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 
         || _playctrl.State == PlayState.Paused 
         || _playctrl.State == PlayState.NotReady) 
         Application.DoEvents(); 
 
      // call reset source here to release resources 
      // but not necessary if we are just exiting 
      _playctrl.ResetSource(); 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
} 
 
// state variables for helper timer states 
public bool _markedSelStart = false; 
public bool _markedSelEnd = false; 
public bool _seekedSelStart = false; 
public bool _seekedSelEnd = false; 
 
// key press event handler to manage playback functions 
void PlayCtrl_KeyPress(object sender, Leadtools.Multimedia.KeyPressEventArgs e) 
{ 
   char key = (char)e.keyAscii; 
   switch (key) 
   { 
      case 'b': 
         if (!_markedSelStart) 
         { 
            _markedSelStart = true; 
            _playctrl.MarkSelectionStart(); 
            System.Diagnostics.Debug.WriteLine("Mark Selection Start: " + _playctrl.SelectionStart.ToString() + " secs"); 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " + _playctrl.State.ToString()); 
         } 
         break; 
      case 'e': 
         if (!_markedSelEnd) 
         { 
            _markedSelEnd = true; 
            _playctrl.Pause(); 
            _playctrl.MarkSelectionEnd(); 
            System.Diagnostics.Debug.WriteLine("Mark Selection End: " 
                                               + _playctrl.SelectionEnd.ToString() 
                                               + " secs"); 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString()); 
            _playctrl.SeekSelectionStart(); 
            _playctrl.Run(); 
         } 
         break; 
      case 's': 
         if (!_seekedSelStart) 
         { 
            _seekedSelStart = true; 
            System.Diagnostics.Debug.WriteLine("Seek To Selection Start: " 
                                               + _playctrl.SelectionStart.ToString() 
                                               + " secs"); 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString()); 
            _playctrl.SeekSelectionStart(); 
         } 
         break; 
      case 'f': 
         // toggle full screen 
         _playctrl.ToggleFullScreenMode(); 
         break; 
      case '+': 
         if (_playctrl.State == PlayState.Running) 
            _playctrl.Pause(); 
 
         _playctrl.NextFrame(); 
         break; 
      case '-': 
         if (_playctrl.State == PlayState.Running) 
            _playctrl.Pause(); 
 
         _playctrl.PreviousFrame(); 
         break; 
      case 'z': 
         if (!_seekedSelEnd) 
         { 
            // turn off full screen mode 
            _playctrl.FullScreenMode = false; 
 
            _seekedSelEnd = true; 
            System.Diagnostics.Debug.WriteLine("Seek To Selection End: " 
                                               + _playctrl.SelectionEnd.ToString() 
                                               + " secs"); 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " 
                                               + _playctrl.State.ToString()); 
            _playctrl.SeekSelectionEnd(); 
         } 
         break; 
      case 'x': 
         _playctrl.Stop(); 
         break; 
 
   } 
} 
 
private void ShowMediaInfo() 
{ 
   double d = 0; 
   string sa, scr, sd, sr, st; 
 
   sa = scr = sd = sr = st = "Unavailable"; 
 
   try 
   { 
      d = _playctrl.FrameDuration; 
      sa = _playctrl.Author; 
      scr = _playctrl.Copyright; 
      sd = _playctrl.Description; 
      sr = _playctrl.Rating; 
      st = _playctrl.Title; 
   } 
   catch (Exception) 
   { 
   } 
 
   MessageBox.Show(_form, string.Format("Duration: {0}\nAuthor: {1}\nCopyright: {2}\nDesc: {3}\nRating: {4}\nTitle: {5}\n", 
      d, sa, scr, sd, sr, st), "Media Info"); 
} 
 
void SelectedOptions() 
{ 
   _playctrl.SeekStart(); 
   _playctrl.SeekEnd(); 
   int te = _playctrl.TrackingSelectionEnd; 
   int ts = _playctrl.TrackingSelectionStart; 
   double se = _playctrl.SelectionEnd; 
   double ss = _playctrl.SelectionStart; 
} 
 
static class LEAD_VARS 
{ 
   public const string MediaDir = @"C:\LEADTOOLS21\Media"; 
} 
Imports Leadtools 
Imports Leadtools.Multimedia 
Imports LeadtoolsMultimediaExamples.Fixtures 
 
Public _result As Boolean = False 
Public _form As PlayCtrlForm = New PlayCtrlForm() 
Public _playctrl As PlayCtrl 
Public _seekingCaps As PlaySeeking 
Public _start As TimeSpan = TimeSpan.Zero 
 
Public Sub HasDialogExample() 
   ' reference the play control 
   _playctrl = _form.PlayCtrl 
 
   ' input file for playback 
   Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi") 
 
   Try 
      ' turn off autostart and auto rewind 
      _playctrl.AutoStart = False 
      _playctrl.AutoRewind = False 
 
      ' set the source file 
      _playctrl.SourceFile = inFile 
 
      ' show some media info if available 
      ShowMediaInfo() 
 
      ' the HasDialog method tells us that the control 
      ' can display the desired settings dialog. 
      ' check to see if the video renderer properties dialog is available 
      If _playctrl.HasDialog(PlayDlg.VideoRenderer) Then 
         ' now show it to change some settings 
         _playctrl.ShowDialog(PlayDlg.VideoRenderer, _form) 
         _result = True 
      End If 
 
      ' get the source object type 
      Dim sot As SourceObjectType = _playctrl.SourceType 
 
      ' check some audio properties 
      Dim mute As Boolean = _playctrl.Mute 
      Dim bal As Integer = _playctrl.Balance 
      Dim vol As Integer = _playctrl.Volume 
 
      ' seeking caps - you can use these to enable menu states or toolbar buttons 
      _seekingCaps = _playctrl.CheckSeekingCapabilities(PlaySeeking.Forward Or PlaySeeking.Backward) 
 
      ' subscribe to the key press event to demo play functions 
      AddHandler _playctrl.KeyPress, AddressOf PlayCtrl_KeyPress 
 
      ' start the capture process 
      _playctrl.Run() 
 
      ' 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 _ 
           OrElse _playctrl.State = PlayState.Paused _ 
           OrElse _playctrl.State = PlayState.NotReady 
         Application.DoEvents() 
      Loop 
 
      ' call reset source here to release resources 
      ' but not necessary if we are just exiting 
      _playctrl.ResetSource() 
   Catch e1 As Exception 
      _result = False 
   End Try 
End Sub 
 
' state variables for helper timer states 
Public _markedSelStart As Boolean = False 
Public _markedSelEnd As Boolean = False 
Public _seekedSelStart As Boolean = False 
Public _seekedSelEnd As Boolean = False 
 
' key press event handler to manage playback functions 
Private Sub PlayCtrl_KeyPress(ByVal sender As Object, ByVal e As Leadtools.Multimedia.KeyPressEventArgs) 
   Dim key As Char = CChar(ChrW(e.keyAscii)) 
   Select Case key 
      Case "b"c 
         If (Not _markedSelStart) Then 
            _markedSelStart = True 
            _playctrl.MarkSelectionStart() 
            System.Diagnostics.Debug.WriteLine("Mark Selection Start: " & _playctrl.SelectionStart.ToString() & " secs") 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString()) 
         End If 
      Case "e"c 
         If (Not _markedSelEnd) Then 
            _markedSelEnd = True 
            _playctrl.Pause() 
            _playctrl.MarkSelectionEnd() 
            System.Diagnostics.Debug.WriteLine("Mark Selection End: " & _playctrl.SelectionEnd.ToString() & " secs") 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString()) 
            _playctrl.SeekSelectionStart() 
            _playctrl.Run() 
         End If 
      Case "s"c 
         If (Not _seekedSelStart) Then 
            _seekedSelStart = True 
            System.Diagnostics.Debug.WriteLine("Seek To Selection Start: " & _playctrl.SelectionStart.ToString() & " secs") 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString()) 
            _playctrl.SeekSelectionStart() 
         End If 
      Case "f"c 
         ' toggle full screen 
         _playctrl.ToggleFullScreenMode() 
      Case "+"c 
         If _playctrl.State = PlayState.Running Then 
            _playctrl.Pause() 
         End If 
 
         _playctrl.NextFrame() 
      Case "-"c 
         If _playctrl.State = PlayState.Running Then 
            _playctrl.Pause() 
         End If 
 
         _playctrl.PreviousFrame() 
      Case "z"c 
         If (Not _seekedSelEnd) Then 
            ' turn off full screen mode 
            _playctrl.FullScreenMode = False 
 
            _seekedSelEnd = True 
            System.Diagnostics.Debug.WriteLine("Seek To Selection End: " & _playctrl.SelectionEnd.ToString() & " secs") 
            System.Diagnostics.Debug.WriteLine("  ... playctrl.State: " & _playctrl.State.ToString()) 
            _playctrl.SeekSelectionEnd() 
         End If 
      Case "x"c 
         _playctrl.Stop() 
 
   End Select 
End Sub 
 
Private Sub ShowMediaInfo() 
   Dim d As Double = 0 
   Dim sa, scr, sd, sr, st As String 
 
   sa = "Unavailable" 
   scr = "Unavailable" 
   sd = "Unavailable" 
   sr = "Unavailable" 
   st = "Unavailable" 
 
   Try 
      d = _playctrl.FrameDuration 
      sa = _playctrl.Author 
      scr = _playctrl.Copyright 
      sd = _playctrl.Description 
      sr = _playctrl.Rating 
      st = _playctrl.Title 
   Catch e1 As Exception 
   End Try 
 
   MessageBox.Show(_form, String.Format("Duration: {0}" _ 
                                        & Microsoft.VisualBasic.Constants.vbLf _ 
                                        & "Author: {1}" _ 
                                        & Microsoft.VisualBasic.Constants.vbLf _ 
                                        & "Copyright: {2}" _ 
                                        & Microsoft.VisualBasic.Constants.vbLf _ 
                                        & "Desc: {3}" & Microsoft.VisualBasic.Constants.vbLf _ 
                                        & "Rating: {4}" & Microsoft.VisualBasic.Constants.vbLf _ 
                                        & "Title: {5}" _ 
                                        & Microsoft.VisualBasic.Constants.vbLf, 
                                        d, sa, scr, sd, sr, st), "Media Info") 
End Sub 
 
Private Sub SelectedOptions() 
   _playctrl.SeekStart() 
   _playctrl.SeekEnd() 
   Dim te As Integer = _playctrl.TrackingSelectionEnd 
   Dim ts As Integer = _playctrl.TrackingSelectionStart 
   Dim se As Double = _playctrl.SelectionEnd 
   Dim ss As Double = _playctrl.SelectionStart 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const MediaDir As String = "C:\LEADTOOLS21\Media" 
End Class 
Requirements

Target Platforms

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

Leadtools.Multimedia Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.