Error processing SSI file
LEADTOOLS Multimedia (Leadtools.Multimedia assembly)

Show in webframe

SourceObject Property (PlayCtrl)






Gets or sets the media source object.
Syntax
public virtual object SourceObject {get; set;}
'Declaration
 
Public Overridable Property SourceObject As Object
'Usage
 
Dim instance As PlayCtrl
Dim value As Object
 
instance.SourceObject = value
 
value = instance.SourceObject
public:
virtual property Object^ SourceObject {
   Object^ get();
   void set (    Object^ value);
}

Property Value

A System.Object value representing the media source object.
Remarks
Use this property to assign a COM object as the media source for the conversion process. The object may be a SampleSource object or any other DirectShow source filter. The SourceType will be set to SourceObjectType.Object. Assignment can raise an error exception. For more information, refer to the Error Codes. Note: When setting this property, the Play control must be in the stopped state.
Example
Copy Code  
Imports Leadtools
Imports Leadtools.Multimedia
Imports LeadtoolsMultimediaExamples.Fixtures

Public _result As Boolean = False
Public _form As CaptureAndPlayCtrlForm = New CaptureAndPlayCtrlForm()
Public _captureTarget As SampleTarget
Public _playSource As SampleSource
Public Sub GetPortableTypeExample()
   ' reference the convert control
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl
   Dim playctrl As PlayCtrl = _form.PlayCtrl

   ' This example demonstrates how to play a capture stream 
   ' using a play control and portable media types.

   Try
      ' set the source device
      If capturectrl.VideoDevices("Analog") Is Nothing Then
         Throw New Exception("No Analog video devices available!")
      End If

      capturectrl.VideoDevices("Analog").Selected = True

      ' set the preview
      capturectrl.Preview = True

      ' create a sample target object for the capture control
      _captureTarget = New SampleTarget()

      ' set the capture target to our sample target created earlier
      capturectrl.TargetObject = _captureTarget

      ' create a new sample source object for the play control
      _playSource = New SampleSource()

      ' set the video compressor 
      capturectrl.VideoCompressors.MCmpMJpeg.Selected = True

      '// for this example we will only capture 120 seconds of video
      capturectrl.UseTimeLimit = True
      capturectrl.TimeLimit = 120

      ' start the capture
      capturectrl.StartCapture(CaptureMode.Video)

      ' we could just assign the media type from target to source
      ' however, let's use the portable type to simulate
      ' the needed steps for remote playback
      Dim portableMediaType As Byte() = _captureTarget.GetConnectedMediaType().GetPortableType()

      ' initialize a new media type object with the portable type
      Dim mt As MediaType = New MediaType()
      mt.SetPortableType(portableMediaType)

      ' set the sample source media type
      _playSource.SetMediaType(mt)

      ' set the play controls sample source object
      playctrl.SourceObject = _playSource

      ' create a timer to drive the sample delivery
      AddHandler _form.TestTimer.Tick, AddressOf SampleDeliver_Tick
      _form.TestTimer.Interval = 33
      _form.TestTimer.Start()

      ' 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 capturectrl.State = CaptureState.Running _
       OrElse capturectrl.State = CaptureState.Paused OrElse capturectrl.State = CaptureState.Pending
         Application.DoEvents()
      Loop
   Catch e1 As Exception
      _result = False
   End Try
End Sub

Private Sub SampleDeliver_Tick(ByVal sender As Object, ByVal e As EventArgs)
   _form.TestTimer.Stop()

   Dim eos As Boolean = False
   Dim cs As MediaSample = Nothing

   Try
      cs = _captureTarget.GetSample(1000)
   Catch cex As COMException
      If cex.ErrorCode = CInt(ErrorCode.VFW_E_SAMPLE_REJECTED_EOS) Then
         eos = True
      Else
         Throw
      End If
   Catch ex As Exception
      Throw
   End Try

   If (Not eos) Then
      _playSource.DeliverSample(1000, cs)
      _form.TestTimer.Start()
   Else
      _playSource.DeliverEndOfStream(1000)
      _form.TestTimer.Stop()

      ' set the result
      _result = True
   End If
End Sub
using Leadtools;
using Leadtools.Multimedia;
using LeadtoolsMultimediaExamples.Fixtures;

public bool _result = false;
public CaptureAndPlayCtrlForm _form = new CaptureAndPlayCtrlForm();
public SampleTarget _captureTarget;
public SampleSource _playSource;
public void GetPortableTypeExample()
{
   // reference the convert control
   CaptureCtrl capturectrl = _form.CaptureCtrl;
   PlayCtrl playctrl = _form.PlayCtrl;

   // This example demonstrates how to play a capture stream 
   // using a play control and portable media types.

   try
   {
      // set the source device
      if (capturectrl.VideoDevices["Analog"] == null)
         throw new Exception("No Analog video devices available!");

      capturectrl.VideoDevices["Analog"].Selected = true;

      // set the preview
      capturectrl.Preview = true;

      // create a sample target object for the capture control
      _captureTarget = new SampleTarget();

      // set the capture target to our sample target created earlier
      capturectrl.TargetObject = _captureTarget;

      // create a new sample source object for the play control
      _playSource = new SampleSource();

      // set the video compressor 
      capturectrl.VideoCompressors.MCmpMJpeg.Selected = true;

      //// for this example we will only capture 120 seconds of video
      capturectrl.UseTimeLimit = true;
      capturectrl.TimeLimit = 120;

      // start the capture
      capturectrl.StartCapture(CaptureMode.Video);

      // we could just assign the media type from target to source
      // however, let's use the portable type to simulate
      // the needed steps for remote playback
      Byte[] portableMediaType = _captureTarget.GetConnectedMediaType().GetPortableType();

      // initialize a new media type object with the portable type
      MediaType mt = new MediaType();
      mt.SetPortableType(portableMediaType);

      // set the sample source media type
      _playSource.SetMediaType(mt);

      // set the play controls sample source object
      playctrl.SourceObject = _playSource;

      // create a timer to drive the sample delivery
      _form.TestTimer.Tick += new EventHandler(SampleDeliver_Tick);
      _form.TestTimer.Interval = 33;
      _form.TestTimer.Start();

      // 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
         || capturectrl.State == CaptureState.Paused
         || capturectrl.State == CaptureState.Pending)
         Application.DoEvents();
   }
   catch (Exception)
   {
      _result = false;
   }
}

void SampleDeliver_Tick(object sender, EventArgs e)
{
   _form.TestTimer.Stop();

   bool eos = false;
   MediaSample cs = null;

   try
   {
      cs = _captureTarget.GetSample(1000);
   }
   catch (COMException cex)
   {
      if (cex.ErrorCode == (int)ErrorCode.VFW_E_SAMPLE_REJECTED_EOS)
         eos = true;
      else
         throw;
   }
   catch (Exception ex)
   {
      throw new Exception(ex.Message);
   }

   if (!eos)
   {
      _playSource.DeliverSample(1000, cs);
      _form.TestTimer.Start();
   }
   else
   {
      _playSource.DeliverEndOfStream(1000);
      _form.TestTimer.Stop();

      // set the result
      _result = true;
   }
}
Requirements

Target Platforms

See Also

Reference

PlayCtrl Class
PlayCtrl Members
ResetSource Method

Error processing SSI file
Leadtools.Multimedia requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features