using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuartzTypeLib; // quartz.dll
using System.Threading;
namespace RTSPMedia
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
trackBar1.SetRange(0, 1000);
}
private const int WM_APP = 0x8000;
private const int WM_GRAPHNOTIEY = WM_APP + 1;
private const int EC_COMPLETE = 0x01;
private const int WS_CHILD = 0x40000000;
private const int WS_CLIPCHILDREN = 0x2000000;
private FilgraphManager m_objFilterGraph = null;
private IBasicAudio m_objBasicAudio = null;
private IVideoWindow m_objVideoWindow = null;
private IMediaEvent m_objMediaEvent = null;
private IMediaEventEx m_objMediaEventEx = null;
private IMediaPosition m_objMediaPosition = null;
private IMediaControl m_objMediaControl = null;
enum MadiaStatus { None, Stopped, Paused, Running };
private MadiaStatus m_CurrentStatus = MadiaStatus.None;
private Thread td;
private OpenFileDialog openFileDialog;
private Rectangle vedioRec;
private Rectangle panelRec;
int vedioWidth = 0;
int vedioHeight = 0;
private void CleanUp()
{
if (m_objMediaControl != null)
{
m_objMediaControl.Stop();
}
m_CurrentStatus = MadiaStatus.Stopped;
if (m_objMediaEventEx != null)
m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
if (m_objVideoWindow != null)
{
m_objVideoWindow.Visible = 0;
m_objVideoWindow.Owner = 0;
}
if (m_objMediaControl != null) m_objMediaControl = null;
if (m_objMediaPosition != null) m_objMediaPosition = null;
if (m_objMediaEventEx != null) m_objMediaEventEx = null;
if (m_objMediaEvent != null) m_objMediaEvent = null;
if (m_objBasicAudio != null) m_objBasicAudio = null;
if (m_objFilterGraph != null) m_objFilterGraph = null;
}
private void Open_Dialog(object sender, System.EventArgs e)
{
openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.mav;*.mp2;*.mp3;*.rm;*.rmvb|All Files|*.*";