Cara Membuat Webcam


1. Jalankan Delphi. 

2. Tambahkan komponen ListBox1 , ListBox2 , ListBox3 , ListBox4 , ComboBox1 ,  FilterGraph1  ,  VideoWindow1  , SaveDialog1  , Filter1  , Timer1  , StatusBar1 , Button1  , Button2  , dan Button3     pada Form1.  
3. Atur properti berbagai komponen di atas, sebagai :


 4.  Tampilan Form yang diharapkan akan berupa :
5.  Klik 2x pada Form1, lalu tuliskan
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
  CapEnum := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
  for i := 0 to CapEnum.CountFilters - 1 do
    ListBox1.Items.Add(CapEnum.Filters[i].FriendlyName);  
CapEnum.SelectGUIDCategory(CLSID_AudioInputDeviceCategory);
  for i := 0 to CapEnum.CountFilters - 1 do
    ListBox3.Items.Add(CapEnum.Filters[i].FriendlyName);
  VideoMediaTypes := TEnumMediaType.Create;
  AudioMediaTypes := TEnumMediaType.Create;
end;

6.  Klik 2x  pada ListBox1, lalu tuliskan kode berikut :
procedure TForm1.ListBox1Click(Sender: TObject);
var
  PinList: TPinList;
  i: integer;
begin   
CapEnum.SelectGUIDCategory(CLSID_VideoInputDeviceCategory);
  if ListBox1.ItemIndex <> -1 then
  begin
    Filter1.BaseFilter.Moniker :=
CapEnum.GetMoniker(ListBox1.ItemIndex);
    Filter1.FilterGraph := FilterGraph1;
    FilterGraph1.Active := true;
    PinList := TPinList.Create(Filter1 as IBaseFilter);
    ListBox2.Clear;
    VideoMediaTypes.Assign(PinList.First);
    for i := 0 to VideoMediaTypes.Count - 1 do
ListBox2.Items.Add(VideoMediaTypes.MediaDescription[i]);
    FilterGraph1.Active := false;
    PinList.Free;
    Button1.Enabled := true;
  end;
end;

7.  Klik 2x  pada ListBox3, lalu tuliskan kode berikut :
procedure TForm1.ListBox3Click(Sender: TObject);
var
  PinList: TPinList;
  i, LineIndex: integer;
  ABool: LongBool;   
begin
CapEnum.SelectGUIDCategory(CLSID_AudioInputDeviceCategory);
  if ListBox3.ItemIndex <> -1 then
  begin
    Filter2.BaseFilter.Moniker :=
CapEnum.GetMoniker(ListBox3.ItemIndex);
    Filter2.FilterGraph := FilterGraph1;
    FilterGraph1.Active := true;
    PinList := TPinList.Create(Filter2 as IBaseFilter);
    ListBox4.Clear;
    i := 0;
    while i < PinList.Count do
      if PinList.PinInfo[i].dir = PINDIR_OUTPUT then
        begin
          AudioMediaTypes.Assign(PinList.Items[i]);
          PinList.Delete(i);
        end else inc(i);
    for i := 0 to AudioMediaTypes.Count - 1 do
    begin
   ListBox4.Items.Add(AudioMediaTypes.MediaDescription[i]);
    end;
    FilterGraph1.Active := false;
    ComboBox1.Clear;
    LineIndex := -1;
    for i := 0 to PinList.Count - 1 do
    begin
      ComboBox1.Items.Add(PinList.PinInfo[i].achName);
      with (PinList.Items[i] as IAMAudioInputMixer) do
get_Enable(ABool);
      if ABool then LineIndex := i;
    end;
    ComboBox1.ItemIndex := LineIndex;
    PinList.Free;
    Button1.Enabled := true;
  end;
end;
8.  Klik 2x  pada Button1, lalu tuliskan kode berikut :
procedure TForm1.Button1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    CapFile := SaveDialog1.FileName;
  end;
end;

9.  Klik 2x  pada Button2, lalu tuliskan kode berikut :
procedure TForm1.Button2Click(Sender: TObject);
var
  multiplexer: IBaseFilter;
  Writer: IFileSinkFilter;
  PinList: TPinList;
  i: integer;
begin
  FilterGraph1.Active := true;
  if Filter2.FilterGraph <> nil then
  begin
    PinList := TPinList.Create(Filter2 as IBaseFilter);
    i := 0;
    while i < PinList.Count do
      if PinList.PinInfo[i].dir = PINDIR_OUTPUT then
        begin
          if ListBox4.ItemIndex <> -1 then
            with (PinList.Items[i] as IAMStreamConfig) do
           SetFormat(AudioMediaTypes.Items[ListBox4.ItemIndex].AMMediaType^);
          PinList.Delete(i);
        end else inc(i);
    if ComboBox1.ItemIndex <> -1 then
      with (PinList.Items[ComboBox1.ItemIndex] as IAMAudioInputMixer) do
        put_Enable(true);
    PinList.Free;
  end;
  if Filter1.FilterGraph <> nil then
  begin
    PinList := TPinList.Create(Filter1 as IBaseFilter);
    if ListBox2.ItemIndex <> -1 then
      with (PinList.First as IAMStreamConfig) do
        SetFormat(VideoMediaTypes.Items[ListBox2.ItemIndex].AMMediaType^);
PinList.Free;
  end;
  with FilterGraph1 as IcaptureGraphBuilder2 do
  begin
SetOutputFileName(MEDIASUBTYPE_Avi, PWideChar(CapFile),
multiplexer, Writer);

if Filter1.BaseFilter.DataLength > 0 then
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter1 as
IBaseFilter, nil , VideoWindow1 as IBaseFilter);
if Filter1.FilterGraph <> nil then
RenderStream(@PIN_CATEGORY_CAPTURE, nil, Filter1 as
IBaseFilter, nil, multiplexer as IBaseFilter);
if Filter2.FilterGraph <> nil then
    begin
        RenderStream(nil, nil, Filter2 as IBaseFilter,
        nil, multiplexer as IBaseFilter);  
  end;
end;
  FilterGraph1.Play;
  Button3.Enabled := true;
  Button2.Enabled := false;
  ListBox4.Enabled := false;
  ListBox3.Enabled := false;
  ListBox2.Enabled := false;
  ListBox1.Enabled := false;
  Timer1.Enabled := true;
end;

10.  Klik 2x  pada Button3, lalu tuliskan kode berikut :
procedure TForm1.Button3Click(Sender: TObject);
begin
  Timer1.Enabled := false;
  Button3.Enabled := false;
  Button2.Enabled := true;
  FilterGraph1.Stop;
  FilterGraph1.Active := False;
  ListBox4.Enabled := true;
  ListBox3.Enabled := true;
  ListBox2.Enabled := true;
  ListBox1.Enabled := true;
end;

11.  Klik 2x  pada Timer1, lalu tuliskan kode berikut :
procedure TForm1.Timer1Timer(Sender: TObject);
var
  position: int64;
  Hour, Min, Sec, MSec: Word;
  const MiliSecInOneDay = 86400000;
begin
  if FilterGraph1.Active then
  begin
    with FilterGraph1 as IMediaSeeking do
      GetCurrentPosition(position);
    DecodeTime(position div 10000 / MiliSecInOneDay, Hour, Min, Sec, MSec);
        StatusBar1.SimpleText := Format('%d:%d:%d:%d',[Hour, Min, Sec, MSec]);
  end;
end;

12.  Klik 1x  pada Form1, klik tab Events dalam Object Inspector, lalu
klik 2x pada sel di sebelah item OnDestroy,  dan tuliskan kode
berikut :
procedure TForm1.FormDestroy(Sender: TObject);
begin
CapEnum.Free;
  VideoMediaTypes.Free;
AudioMediaTypes.Free;
end;

READMORE
 

Istilah-Istilah Pada Bidang Sistem Operasi

F

File adalah arsip yang disimpan dalam suatu media yang terdiri dari kumpulan karakter dan didokumentasikan dalam bentuk data digital oleh komputer.

File system adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada disk.

Firewall adalah sebuah perangkat atau set perangkat yang dirancang untuk mengizinkan atau menolak transmisi jaringan berdasarkan seperangkat aturan dan sering digunakan untuk melindungi jaringan dari akses yang tidak sah sementara memungkinkan komunikasi yang sah untuk lewat.

First-come first-serve (FCFS) adalah proses yang dilakukan adalah proses yang terlebih dahulu memasuki antrian.

Flag adalah  suatu bit atau byte yang digunakan sebagai penyimanan informasi tentang suatu kondisi.

Forward adalah didalam penggunaan fasilitas software untuk email maupun sms istilah ini diartikan melanjutkan yang diterima kepada orang lain.

G
Gateway adalah dalam pengertian tenis istilah ini mengacu pada pengaturan hardware mauoun software yang menterjemahkan antara dua protocol yang berbeda.

Generate adalah suatu fungsi untuk menggenerate kode Atau ID sebuah standar kode atau bersifat primary key secara auto increment.

H
Handler adalah suatu sub routine yang berfungsi untuk mengatur kegiatan dari suatu device.

Handshaking adalah  suatu cara pengontrolan aliran data antara dua perangkat lunak menggunakan sinyal RS232, dan handshaking perangkat keras pada umumnya menggunakan karakter control Xon dan Xoff.

Hardware adalah perangkat keras suatu alat yang bias dilihat dan diraba oleh manusia secara langsung yang mendukung proses komputerisasi.

Head adalah  suatu alat yang bekerja untuk mengakses data dari media storage.

Host adalah computer atau perangkat lainnya yang terhubung dalam suatu jaringan.

Hardware timer adalah unit counter (alias, unit timer) adalah komponen penting dari embedded system yang paling dan termasuk dalam mikrokontroler banyak.

Host adapter adalah sebuah host controller, adaptor host, atau host bus adaptor (HBA) menghubungkan sistem tuan rumah (komputer) untuk lain jaringan dan penyimpanan perangkat.

Human Interface Device (HID) adalah jenis perangkat komputer yang berinteraksi langsung dengan manusia dan paling sering mengambil masukan dari manusia dan dapat memberikan output ke manusia.

I
I/O Appliction adalah aplikasi yang digunakan untuk mengizikan situs web berkomunikasi satu sama lain, biasanya menggunakan PHP.

Idle adalah waktu yang hilang saat alat tersebut sedang berproduksi. Salah satu idle yang terjadi dioperasional tambang adalah meal dan pray. Meal adalah waktu yang dialokasikan bagi operator untuk makan, sedangkan Pray adalah waktu yang dialokasikan untuk beribadah untuk operator muslim.

Inode adalah file nomor identifikasi setiap file diunix / linux sistem, berisi informasi tentang pengguna dan kepemilikan kelompok, modus akses dan jenis file.

Intruction adalah sebuah aplikasi untuk membuat / menyusun intruksi yang digunakan menggunakan relay-type intruction untuk memonitor dan mengontrol.

Interface Socket adalah socket antar muka yang menyediakan standart terdokumentasi dengan baik pendekatan untuk mengakses sumber daya jaringan kernel.

Internal Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi.

Index adalah  hasil penggalian yang dibuat oleh software search engine.

Input adalah  masukan. Energi yang dimasukan ke dalam system.

Interface adalah  fungsi dan atribut sensor dari suatu sistem (aplikasi, perangkat lunak, kendaraan, dll) yang berhubungan dengan pengoperasiannya oleh pengguna.

Instruction adalah  perintah yang dijalankan oleh computer dalam menjalankan prosesnya.
 
(I/O) adalah bagian dari sistem mikroprosesor yang digunakan oleh mikroprosesor itu untuk berhubungan dengan dunia luar.

Implementasi adalah merupakan wujud dari spesifikasi teknis atau algoritma sebagai program, komponen perangkat lunak, atau sistem komputer melalui pemrograman dan penyebaran.

Internet Working adalah pratek yang menghubungkan jaringan kmputer dengan jaringan lainnya melalui penggunaan gateway yang menyediakan metode umum rote informasi paket antara jaringan.

Inderect Mapping adalah pemetaan yang memetakan masing-masing blok memori utama hanya kesatu saluran cache saja. Jika suatu blok ada dicache, maka tempatnya sudah tertentu.


READMORE