Minggu, 25 September 2016

Delphi Play Sound Wave

Delphi- Play Sound Wave

Ada sebuah pernyataan,
jika a >=50 maka
a akan menghasilkan suara a
a akan menghasilkan gambar a
a akan menghasilkan tulisan a
jika b<=50 maka
b akan menghasilkan suara b
b akan menghasilkan gambar b
b akan menghasilkan tulisan b
dengan timer 2detik.
Setelah 2 detik perulangan diatas tidak berfungsi lagi.
Kira2 coding di delphinya gmn ya???
Mohon bimbingannya….
Saya baru bisa seperti dibawah tapi klu di run hanya muncul suara saja…
begin
if VoltF >= 60 then
Label6.Caption:=’Batang’;
sndPlaySound(‘E:\nyoba.wav’, SND_NODEFAULT Or SND_ASYNC Or
SND_LOOP);
if VoltF <=50 then
Label6.Caption:=’Daun’;
sndPlaySound(‘E:\nyoba.wav’, SND_NODEFAULT Or SND_ASYNC Or
SND_LOOP);
end
Nah dari tulisan diatas saya memang agak bingung untuk alur programnya nanti saya jawab alur yang saya pahami saja ya soalnya detail diatas masih kurang jelas. untuk code dari masnya sudah betul untuk tampilan sound hanya ada beberapa kesalahan pada penggunaan ifnya saja๐Ÿ™‚, nah monggo simak alur yang coba saya jawab berdasarkan yang saya pahami.
Pertama Buat Form Baru sebagai berikut :
design formnya
Nah aturlah Properties Namenya Sebagai Berikut :
Nah Berikut ini adalah alur programnya :
  • Jika Program Dijalankan maka Text_a bernilai 0 dan kita bisa memulai program dengan mengklik Button_mulai.
  • Jika Button_mulai Di Klik maka Text_a akan berjalan dengan penambahan penyataan a+2 setiap time interval 250 di timer 1. dan Caption Button_mulai Berubah Jadi Stop.
  • Saat Nilai Text_a > 0 maka akan muncul tulisan pada label_suara : ‘ ini adalah suara Ayam  ~ ~ ~ ‘, kemudian image muncul gambar Ayam dan memainkan sound wave untuk ayam yang sudah disediakan.
  • Saat Nilai Text_a > 50 maka akan muncul tulisan pada label_suara : ‘ ini adalah suara Kodok ~ ~ ~ ‘, kemudian image muncul gambar kodok dan memainkan sound wave untuk kodok yang sudah disediakan.
  • jika nilai Text_a >100 maka gambar hilang, label kembali semula dan button_mulai Kembali Menjadi mulai dan text_a kembali bernila 0;
note: format gambar yang digunakan dengan format Bmp ya karena format jpg tidak support untuk image untul langsung load. format suara juga digunakan format wav yang sudah support tanpa ada penambahan komponent lainnya.
_______________________________________________________________________________
Berikut ini adalah listing Codenya :
tambahakan componet MMSystem pada list Uses di list kode paling atas delphi yang digunakan untuk pemutaran file wav ( lihat gambar dibawah ini ) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre>
procedure TForm1.Timer1Timer(Sender: TObject);
var
a:integer;
begin
a:=strtoint(edit_a.Text);
a:=a+2;
edit_a.Text:=inttostr(a);
 
if a>100 then
begin
button_mulai.Caption:='Mulai';
timer1.Enabled:=false;
timer_kodok.Enabled:=false;
timer_ayam.Enabled:=false;
sndPlaySound(nil, 0); // Stops the sound
edit_a.Text:='0';
 
image1.Picture:=nil;
label_suara.Caption:='ini adalah Suara ???? ~ ~ ~'
end
else if a>50 then
begin
label_suara.Caption:='ini adalah Suara Kodok ~ ~ ~';
image1.Picture.LoadFromFile('C:\main_suara_wat\picture\kodok.bmp');
timer_ayam.Enabled:=false;
timer_kodok.Enabled:=true;
end
else
begin
label_suara.Caption:='ini adalah Suara Ayam ~ ~ ~';
image1.Picture.LoadFromFile('C:\main_suara_wat\picture\ayam.bmp');
timer_ayam.Enabled:=true;
timer_kodok.Enabled:=false;
end;
 
end;
saat timer1.enabled:=true maka akan menjalankan list code diatas dimana akan ada penambahan nilai a yang akan di tampilkan pada text_a. Jika nilai a bernilai > 50 maka akan tampil label tulisan suara kodok, gambar kodok dan suara kodok dengan menjalankan timer_kodok, selain dari a>50 maka ia akan bernilai ayam dan jika sudah lebih dari 100 maka akan di stop keseluruhan aktivitas timer๐Ÿ™‚.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.button_mulaiClick(Sender: TObject);
begin
 
  if button_mulai.Caption='Mulai' then
    begin
      button_mulai.Caption:='Stop';
      timer1.Enabled:=true;
      timer_ayam.Enabled:=false;
      timer_kodok.Enabled:=false;
    end
  else
    begin
      button_mulai.Caption:='Mulai';
      timer1.Enabled:=false;
      timer_ayam.Enabled:=false;
      timer_kodok.Enabled:=false;
      sndPlaySound(nil, 0); // Stops the sound
      edit_a.Text:='0';
      image1.Picture:=nil;
      label_suara.Caption:='ini adalah Suara ???? ~ ~ ~'
    end;
 
end;
Jika caption button adalah Mulai maka akan menyalakan Timer1 dan jika Caption Button adalah Stop dan di klik maka akan mematikan timer1.
1
2
3
4
5
6
7
procedure TForm1.timer_ayamTimer(Sender: TObject);
begin
 
      sndPlaySound('C:\on_request\sound\ayam.wav', SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
      timer_ayam.Enabled:=false;
 
end;
Jika Timer Ayam dinyalakan dengan enabled = true maka akan menjalankan file suara ayam.
1
2
3
4
5
procedure TForm1.Timer_kodokTimer(Sender: TObject);
begin
      sndPlaySound('C:\on_request\sound\kodok.wav', SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);
      timer_kodok.Enabled:=false;
end;
Jika Timer kodok dinyalakan dengan enabled = true maka akan menjalankan file suara kodok.
_______________________________________________________________________________
Nah Berikut ini adalah tampilan hasil aplikasinya๐Ÿ™‚ .
mulai program dengan klik button mulai
nilai teks a jika < 50 maka akan tampil suara dan gambar ayam
jika nilai teks a > 50 maka akan tampil suara dan gambar kodok
Nah jika nilai teks sudah lebih dari 100 ia akan otomatis kembali ke awal dengan Caption Button Menjadi Mulai dan gambar hilang dan Suara Hilang๐Ÿ™‚.. Nah itulah yang bisa saya jawab untuk pertanyaan listing kode delphi yang pertama masuk kesaya ini hehehehe.
Untuk Temen Temen yang mau liat sourcecodenya secara jelas untuk copy paste maka temen temen bisa lihat di pojok kanan atas listcode bisa temen temen klik yang view sourcecode untuk menampilkan codenya, perhatikan gambar berikut :
klik view sourcecode di kanan atas ( dilingkari merah )
contoh tampilan sourcecode saat sudah di klik d(^o^”)
Semoga Berguna dan untuk Temen temen :). klik disini

 

Tidak ada komentar:

Posting Komentar