Başlangıç > Kodlar > Visual Basic 6 ile MCI Api’sini kullanarak her tür ses dosyası açmak

Visual Basic 6 ile MCI Api’sini kullanarak her tür ses dosyası açmak


MciSendString API'si, bizim bir ses dosyasını tamamen kontrollü olarak çalabilmemizi sağlıyor. Ek özellikleri De cabası. Eğer media player nesnesinin ocx dosyalarından kurtulmak istiyorsanız gayet iyi ve hızlı bir çözüm.

Windows Mci Aygıtı ve Kullanımı

Visual basic’te ses ve görüntü üzerinde çalışmak takdir edersiniz ki çok çıldırtıcı bir olaydır. Durmadan araştırma yaparsınız, fakat elinize 235682365 satırlık kodla yanlızca bir MIDI dosyasını çalabilen programlardan başka bir şey geçmez. Fakat burada bu soruna son veriyoruz! Şöyle ki, kullanacağımız tek Api olan mciSendString fonksiyonuyla on-board ses kartlarıyla bile her tür(mp3,wav,midi,audio…) ses dosyası çalacak, ses ayarlayacak, sesin uzunluğunu alacak, her bişeyi yapacaz! Hatta öyle bişey ki, yazının ilerleyen dakikalarında adrenalin seviyeniz tepeye vuracak, salyalarınız sel olup akacak(pardon)

İlk önce aşağıdaki api fonksiyonlarını formunuza declare edin. “MciGetErrorString ne la?” diyecek olursanız onu komut gönderdikten sonra gelecek olan hata numaralarının yazılı karşılıklarını almak için kullanacağız.

***
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA"
(ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
***

Şimdi ses dosyasını yüklemeye hazırız. Formunuzun uzerine bir(1) CommandButton ekleyin, Caption özellşiğini "Yükle" diye değiştirin ve aşağıdaki kodu yapıştırın:

Private Sub Command1_Click()
Dim Hata As Long
Dim HataMesaji As String * 128
'Mesajı gönderiyoruz
Hata = mciSendString("open " & Chr$(34) & "E:\müzük\Feel Good.mp3" & Chr$(34) & " alias YeniSes", 0, 0, 0)
'Hata Mesajını Alıyoruz
mciGetErrorString Hata, HataMesaji, 128
MsgBox HataMesaji
End Sub

Mci aygıtımızı böylece oluşturmuş olduk ve adı "YeniSes" evet, mci nesneleri collection'umsu bir yapıda ve bir nesneye mesaj göndermek için adını kullanmalıyız.Eğer sonuçta size gelen mesaj "Belirtilen komut gerçekleştirildi" ya da onun gibi bir şey ise her şey yolunda demektir.   (Mp3 dosyamızın yerini gösterirken iki kenarına koyduğumuz Chr$(34) karakteri tırnak işaretine karşılık geliyor. Tabii ki tırnak işaretini string içinde direk kullanamıyoruz.) (HataMesaji'nın uzunluğunu 128 olarak ayarlamamızın sebebi geterrorstring fonksiyonuna da bu uzunlukta sonuç döndürmesini söylememiz. Eğer daha uzun veya kısa olursa sonuç gelmeyecektir.)

---Normalde open komutunun sonundaki bölümü " type mpegvideo alias YeniSes" olarak yazmamız gerekirdi, böylece açacağımız dosyanın mp3 olduğunu belirtecektik fakat mci nesneleri dosya uzantısına göre bunu otomatik seçmede o kadar başarılı ki hiç kullanmasanız da olur.

Şimdi bir commandbutton (Oynat) daha koyun ve click olayına şu satırı kopyalayın.

mciSendString "play YeniSes", 0, 0, 0

YeniSes'e dosyayı yükledikten sonra sesi çalmak için sadece Oynat'a tıklayın. Son derece basit değil mi? Bunun gibi stop, pause ve close komutlarını kullanabilirsiniz. Close komutu işiniz bittiğinde nesneyi silmek içindir, hafızada sürekli yer kaplamasını istemeyiz değil mi?

mciSendString "setaudio YeniSes volume to 0", 0, 0, 0

bu komutumuzla ise kontrolümüzün ses ayarını 0'a getirdik. Ayrıca staudio için ilginizi çekecek komutlar position to,bass to,treble to,left volume to,right volume to. Daha fazla komut istiyorsanız www.msdn.com işinizi görecektir. Şimdi diyeceksiniz ki biz komutu gönderdik, bilgi nasıl alacas? Bunun için gerekli komutu vermeli ve fonksiyonun ReturnString bölümüne uygun uzunlukta bir string değişkeni koymalıyız.

Dim Dondur As String * 128
mciSendString "status YeniSes length", Dondur, 128, 0
Msgbox Dondur

Böylece ses dosyamızın MiliSaniye olarak uzunluğunu da almış bulunuyoruz.status ile ilgili verebileceğim komutlar volume,left volume, right volume, position.

Tabii ki buradaki örneklerin tümü yeterli değil, hepsi bu kadar değil. Gerisi msdn.com'da biraz dolaşmaya bakıyor. Umarım bu makale sayesinde bir çok programcı kendi müzik-çalarına exe'sinin yanında bir sürü delirtici ıvır-zıvır dll taşımadan kavuşur. Löhe!

Ozan Fırat Civaner - lannuch@hotmail.com


TD Software


Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: