SourceFile Property

Summary
Gets or sets the media source filename, URL or UDP address.
Syntax
C#
C++/CLI
[EditorAttribute(System.Type, System.Type)] 
public virtual string SourceFile { get; set; } 
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. Assignment can raise an error exception. For more information, refer to the Error Codes.

Example
C#
using Leadtools; 
using Leadtools.MediaFoundation; 
using LeadtoolsMediaFoundationExamples.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(); 
 
      _playctrl.SelectedVideoProcessors.Add(_playctrl.VideoProcessors[0]); // Select the first in processors list 
 
      // the HasDialog method tells us that the control 
      // can display the desired settings dialog. 
      // check to see if the selected video processor properties dialog is available 
      if (_playctrl.HasDialog(PlayDlg.SelVideoProcessor)) 
      { 
         // now show it to change some settings 
         _playctrl.ShowDialog(PlayDlg.SelVideoProcessor, _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.MediaFoundation.KeyPressEventHandler(PlayCtrl_KeyPress); 
 
      // start the playback 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.MediaFoundation.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:\LEADTOOLS23\Media"; 
} 
Requirements

Target Platforms

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

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