Thursday, March 7, 2013

Video Player Programı (C#)


Program.Cs  :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmMain());
        }
    }
}


MainForm.CS :

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;

namespace WindowsFormsApplication2
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
         
        }

       
        private void btnRecor_Click(object sender, EventArgs e)
        {
         
            RecorderForm frm = new RecorderForm();
            frm.ShowDialog();
        }

        private void btnPLayer_Click(object sender, EventArgs e)
        {
         
            FrmPlayer frm = new FrmPlayer();
            frm.ShowDialog();
         
        }

        private void frmMain_Load(object sender, EventArgs e)
        {

        }
    }
}




PlayerForm.Cs :

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 System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using ResimİslemLib;


namespace WindowsFormsApplication2
{
    public partial class FrmPlayer : Form
    {
        public FrmPlayer()
        {
            InitializeComponent();
        }

        private void BtnAc_Click(object sender, EventArgs e)
        {
            /*click olayının baslaması ile birlikte gereken kontolleri başlatmak için  kullanıcının bir dosyayı açmak
 için dosyayı seçip aç butonun basıp basmadığını kontrol ettirmemiz gerekiyor.*/
            DialogResult Cevap= opfDosyaAc.ShowDialog();
            if (Cevap != DialogResult.OK)
                return; //okey dışında herhangi bir şeye bastıysa hiç bir işlem yapmadan çıkıyor.

            if (opfDosyaAc.FileName != "" && File.Exists(opfDosyaAc.FileName) && opfDosyaAc.FileName.EndsWith("mrd"))
            { /*(1-dosya adı boş değil ise, 2- dosya adı mevcut ise, 3- seçilen dosyanın uzantısı mrd ile bitiyor
 ise)*/
                txtPath.Text = opfDosyaAc.FileName;
                btnStart.Enabled = true;
                btnStop.Enabled = true;

            }
        }

        private void txtPath_TextChanged(object sender, EventArgs e)
        {

        }

        List<Bitmap> liste;/*sınıf bazında erişilebilir olsun diye tanımını burada yaptık*/

        private void btnStart_Click(object sender, EventArgs e)
        {

            FileStream fs = new FileStream(txtPath.Text, FileMode.Open);/*file open ile seçtiğimiz yolu 
filemode modunda ile ac*/
            BinaryFormatter bf = new BinaryFormatter();
            SaveCapture dosya  =(SaveCapture)bf.Deserialize(fs); /*tekrar class dosyasına çevirdi. deserialize 
dediğimiz an bize döndürdüğü tip objecttir.  tüm class lar deserialize edildiğinde tipleri karşılaya bilmek için 
objecttir. savecapture' e cast etmeliyiz ki  içindeki resimlere ulaşabilelim*/
            liste = dosya.GetList();
            /*player bastığımızda save ile kaydedilenmrd uzantılı dosyayı alıyor BinaryFormatter ile Serializable
 ediyor tekrar ilk bastaki formata  doldurulan formata çevriliyor. o sınıfı elde ettikten sonra da sc. GetList 
dediğimizde o sınıfıa eklenmis olan tüm sınıflar gelmiş oluo.*/

            tmrPlay.Interval = dosya.Interval; /*play tusuna bastığımız anda ki timerin zamanını dosyadan çekme 
zamanına eşitledik.*/
            tmrPlay.Enabled = true; /*tick eventinin timer'ini start clickine basıldığı an başlatmak için*/
        }

        int sira = 0;

        private void tmrPlay_Tick(object sender, EventArgs e)
        {
            pctVideo.Image = liste[sira];
            sira++;
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            tmrPlay.Enabled = false;
        }
    }
}


SaveCapture.Cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace ResimİslemLib
{
    [Serializable] /* kodların gömülü olarak byte türünden saklanması için serializable kodunu kullandık, bu 
sayede görüntüler programın cdi kodları arasında saklanabilecek. */
    public class SaveCapture
    {
        private int interval; /*dosyaya yazdırma frekansını ayarlamak için kullanacağız. */

        public int Interval
        {
            get { return interval; }
            set { interval = value; }
        }

        public SaveCapture()
        {
            this.interval = 300;
        }

        public SaveCapture(int interval)
        {
            this.interval = interval;
        }

        List<Bitmap> dosya = new List<Bitmap>(); /* bitmap türünden veriler saklayan generic yapısında 
dosya adında liste tanımladık. */

        public void AddList(Bitmap resim) /*listemize resim eklemek için bu metodu hazırladık*/
        {
            dosya.Add(resim);
        }

        /* dosyayı dışarıya göndermek için; */
        public List<Bitmap> GetList()
        {
            return dosya;
        }


        public void SaveFile(string path)/* path dosyanın yolunu belirticek*/
        {
            FileStream fs = new FileStream(path, FileMode.CreateNew); /* filestream sınıfı ile yeni bir dosya 
oluşturduk.*/

            BinaryFormatter bf = new BinaryFormatter(); /* binaryformatter serilaze veya deserilaze yapmamızı 
sağlar. */
            /*serilaze:classı içerisindeki veri ile diske yazmak,    deserilaze: diske yazılmış halini alıp classa 
çevirmek. */
            bf.Serialize(fs, this); /*diske yazmak için serilaze bizden işlemden sonra nereye 
kaydedileceğini(filestream) ve kaydedilecek nesneyi istiyor(class). */
            fs.Flush(); /*dosyayı yazdırıyor*/
            fs.Close(); /*kapatmaz isek stream mesgul olarak kalır program hata verir*/
        }
    }
}


ScreenCapture.Cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms; /*screen sınıfı forma has bir yapı olduğundan dolayı refaranslara windows formu eklememiz gerekiyor.*/


namespace ResimİslemLib
{
    public class ScreenCapture
    {
        public Bitmap CaptureScreen() {

           /*(beyaz kagıt)*/Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height );/*öncelikle width ve heigth değerlerini verip bir bitmap  ekran görüntüsü olışturmamız lazım.*/
            /*bitmapler ile çalışırken asıl işi yapan graphics sınıfıdır. ve yaptığınız değişikler bitmape yansır. o zaman bizim bir grafik nesnesi olusturup bitmapi ona dahil etmemiz gerekir.  new grafik ile grafik nesnesi olusturamiyoruz. graphics sınıfının altında statik metotlar vardır. fromlardan biri ile graphics metodu oluşturulur. bizim burda kullanacığımız image metodur. */

            /*(ressam)*/Graphics gr = Graphics.FromImage(bmp);
            /*Graphics sınıfı ekranın görüntüsünü çekebilir.*/
            gr.CopyFromScreen/*(ekran görüntüsü yakalıyor)*/(0, 0, 0, 0, new  Size(bmp.Width, bmp.Height)); /* bu metodunda 4 aşırı yüklenmiş metodu  vardır. koordinatları belirlemek için kullanılır. copyscreen ile ekranın belirli bir kısmının görüntüsü alınabilir.*/
            /* şuanda bmp de ekranın görüntüsü var. */

            return bmp;
        }
    }
}

Programı indirmek için ; 



Link:   https://hotfile.com/dl/197357241/f61aa1f/Video_Player.rar.html

No comments:

Post a Comment