Reklamlar
Visual Basic ile ses dosyalarınızı çalmak

Visual Basic ile ses dosyalarınızı çalmak » Visual Basic'i kullanarak Windows ses dosyalarını (WAV) çalabilmeniz için, geçen ay üstünde oldukça durduğumuz Api fonksiyonlarına ihtiyacınız var.

Gönderen Konu: Visual Basic ile ses dosyalarınızı çalmak  (Okunma sayısı 1825 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı administrator

  • Administrator
  • General
  • *****
  • İleti: 24517
  • Karma: +3/-1
    • Profili Görüntüle
    • Toplist Ekle Site Ekle

Visual Basic ile ses dosyalarınızı çalmak
« : Nisan 30, 2009, 06:26:04 ÖÖ »
Visual Basic'i kullanarak Windows ses dosyalarını (WAV) çalabilmeniz için, geçen ay üstünde oldukça durduğumuz Api fonksiyonlarına ihtiyacınız var. İlk olarak bu fonksiyonu kullanarak ufak bir program yaptık. Bize gerekli olanlar: dosya seçiminde kullanacağımız bir sürücü listesi, dizin listesi ve dosya listesi, bir de seçilen dosyayı görebilmemiz için gereken bir etiket. Formunuzun üstüne bunları gösterildiği biçimde yerleştirin ve hemen kodlarımızı yazmaya başlayın...

Ses dosyalarını çalabilmek için öncelikle bir ses kartına ya da sesleri PC hoparlöründen dinleyebilmek için bir sürücüye ihtiyacınız var. (Bu sürücüyü PC WORLD BBS'ten edinebilirsiniz.) İşte ses dosyalarını çalabilmeniz için gereken API fonksiyonu ve parametreleri. Bunları iyice inceledikten sonra programımızı yazmaya başlayabilirsiniz.

Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal<ozellik%) As Integer

Parametreler:

ses$
Çalınacak ses dosyasını belirtir.Eğer ses dosyası belirtilmezse o anda çalan dosya durdurulur.

ozellik%
Bu değişken yerine ses dosyasının nasıl çalınacağını belirten aşağıdaki sabitlerden biri
kullanılmalıdır.

SND_SYNC
Sistem olaylarını durdurur. Program kontrolü ses dosyası çalındıktan sonra geri döner.

SND_ASYNC
Ses arka planda çalar. Program kontrolü ses dosyasının hemen başında geri döner.

SND_NODEFAULT
Eğer belirttiğiniz ses dosyası bulunamadıysa hata mesajı verilmeden programa geri dönülür.

SND_LOOP
Çalmak istediğiniz ses dosyası sndPlaySound fonksiyonuna boş bir değer verene kadar tekrar eder. Eğer bu özelliği kullanıyorsanız aynı zamanda ses dosyasını geri planda çalmaya yarayan SND_ASYNC fonksiyonunu kullanmalısınız.



SND_NOSTOP
Eğer herhangi bir ses o anda çalınıyorsa istediğiniz dosya çalınmaz ve bu fonksiyonu atadığınız değer anında 0 (False) olur. Bu özellik aynı zamanda o anda bir sesin çalınıp çalınmadığını anlamanıza da yardımcı olur.

Not: sndPlaySound fonksiyonu eğer belirttiğiniz dosya sorunsuz olarak çalınırsa 1 değerini döndürür.

Gelelim programımızın kodlarına. Aşağıdaki birinci paragraf programın diğer modüllerinden ayrı bir yere yazılmalıdır. (WAVCAL.BAS gibi.)

Declare Function sndPlaySound
Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal ozellik%) As Integer
Global Const SND_SYNC = &H0
Global Const SND_ASYN = &H1
Global Const SND_NODEFAULT = &H2
Global Const SND_LOOP = &H8
Global Const SND_NOSTOP = &H10
 
Sub Form_Load ()
ChDir "c:\windows"
label1.Caption = ""
file1.Pattern = "*.wav" ' Sadece WAV uzantılı dosyalarımız listelensin
End Sub
 
Sub Drive1_Change ()
dir1.Path = drive1.Drive ' Sürücü değiştiğinde dizin listesini yenile
End Sub
 
Sub Dir1_Change ()
file1.Path = dir1.Path ' dizin değiştiğinde dosya listesini yenile
End Sub
 
Sub File1_Click ()
ses$ = dir1.Path + "\" + file1.FileName
If Mid$(ses$, 4, 1) = "\" Then ' Eğer ana dizindeysek araya \ karakterini sokma
ses$ = dir1.Path + file1.FileName
End If
Burada Genel Dialog kutusunu kullanmamamızın bir dez avantajını görüyorsunuz. Her ne kadar bu kodu yazmadan programımız çalışsa da liste kutumuz ana dizini gördüğünde ses dosyamızın yerini bulmakta bir sorun yaşanacaktır. Yani yukarıdaki kod parçası her seferinde bu sorunu gidermek için kullanılabilir.

  label1.Caption = " Ses: " + ses$
  ozellik% = SND_ASYNC And SND_NODEFAULT
  X% = sndPlaySound(ses$, ozellik%)
End Sub
 Visual Basic'i kullanarak Windows ses dosyalarını (WAV) çalabilmeniz için, geçen ay üstünde oldukça durduğumuz Api fonksiyonlarına ihtiyacınız var. İlk olarak bu fonksiyonu kullanarak ufak bir program yaptık. Bize gerekli olanlar: dosya seçiminde kullanacağımız bir sürücü listesi, dizin listesi ve dosya listesi, bir de seçilen dosyayı görebilmemiz için gereken bir etiket. Formunuzun üstüne bunları gösterildiği biçimde yerleştirin ve hemen kodlarımızı yazmaya başlayın...

Ses dosyalarını çalabilmek için öncelikle bir ses kartına ya da sesleri PC hoparlöründen dinleyebilmek için bir sürücüye ihtiyacınız var. (Bu sürücüyü PC WORLD BBS'ten edinebilirsiniz.) İşte ses dosyalarını çalabilmeniz için gereken API fonksiyonu ve parametreleri. Bunları iyice inceledikten sonra programımızı yazmaya başlayabilirsiniz.

Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal<ozellik%) As Integer

Parametreler:

ses$
Çalınacak ses dosyasını belirtir.Eğer ses dosyası belirtilmezse o anda çalan dosya durdurulur.

ozellik%
Bu değişken yerine ses dosyasının nasıl çalınacağını belirten aşağıdaki sabitlerden biri
kullanılmalıdır.

SND_SYNC
Sistem olaylarını durdurur. Program kontrolü ses dosyası çalındıktan sonra geri döner.

SND_ASYNC
Ses arka planda çalar. Program kontrolü ses dosyasının hemen başında geri döner.

SND_NODEFAULT
Eğer belirttiğiniz ses dosyası bulunamadıysa hata mesajı verilmeden programa geri dönülür.

SND_LOOP
Çalmak istediğiniz ses dosyası sndPlaySound fonksiyonuna boş bir değer verene kadar tekrar eder. Eğer bu özelliği kullanıyorsanız aynı zamanda ses dosyasını geri planda çalmaya yarayan SND_ASYNC fonksiyonunu kullanmalısınız.



SND_NOSTOP
Eğer herhangi bir ses o anda çalınıyorsa istediğiniz dosya çalınmaz ve bu fonksiyonu atadığınız değer anında 0 (False) olur. Bu özellik aynı zamanda o anda bir sesin çalınıp çalınmadığını anlamanıza da yardımcı olur.

Not: sndPlaySound fonksiyonu eğer belirttiğiniz dosya sorunsuz olarak çalınırsa 1 değerini döndürür.

Gelelim programımızın kodlarına. Aşağıdaki birinci paragraf programın diğer modüllerinden ayrı bir yere yazılmalıdır. (WAVCAL.BAS gibi.)

Declare Function sndPlaySound
Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal ozellik%) As Integer
Global Const SND_SYNC = &H0
Global Const SND_ASYN = &H1
Global Const SND_NODEFAULT = &H2
Global Const SND_LOOP = &H8
Global Const SND_NOSTOP = &H10
 
Sub Form_Load ()
ChDir "c:\windows"
label1.Caption = ""
file1.Pattern = "*.wav" ' Sadece WAV uzantılı dosyalarımız listelensin
End Sub
 
Sub Drive1_Change ()
dir1.Path = drive1.Drive ' Sürücü değiştiğinde dizin listesini yenile
End Sub
 
Sub Dir1_Change ()
file1.Path = dir1.Path ' dizin değiştiğinde dosya listesini yenile
End Sub
 
Sub File1_Click ()
ses$ = dir1.Path + "\" + file1.FileName
If Mid$(ses$, 4, 1) = "\" Then ' Eğer ana dizindeysek araya \ karakterini sokma
ses$ = dir1.Path + file1.FileName
End If
Burada Genel Dialog kutusunu kullanmamamızın bir dez avantajını görüyorsunuz. Her ne kadar bu kodu yazmadan programımız çalışsa da liste kutumuz ana dizini gördüğünde ses dosyamızın yerini bulmakta bir sorun yaşanacaktır. Yani yukarıdaki kod parçası her seferinde bu sorunu gidermek için kullanılabilir.

  label1.Caption = " Ses: " + ses$
  ozellik% = SND_ASYNC And SND_NODEFAULT
  X% = sndPlaySound(ses$, ozellik%)
End Sub



Not: Konular İnternet Sitelerinden derlenerek alıntı yapılmıştır.








BilX.Net

 

Related Topics

  Konu / Başlatan Yanıt Son İleti
7 Yanıt
9848 Gösterim
Son İleti Aralık 25, 2018, 11:26:52 ÖÖ
Gönderen: punsikorn
0 Yanıt
2226 Gösterim
Son İleti Nisan 30, 2009, 06:07:10 ÖÖ
Gönderen: administrator
0 Yanıt
4380 Gösterim
Son İleti Nisan 30, 2009, 06:07:37 ÖÖ
Gönderen: administrator
0 Yanıt
5648 Gösterim
Son İleti Nisan 30, 2009, 06:26:13 ÖÖ
Gönderen: administrator
0 Yanıt
2419 Gösterim
Son İleti Nisan 30, 2009, 06:27:26 ÖÖ
Gönderen: administrator