film indir
Aralık
11th 2007
Windows Mci API’sini Kullanarak Her Tür Ses Dosyası Çalmak

Posted under Visual Basic



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.

Trackback URI | Comments RSS

Yorum Yaz - Leave a Reply

yeliiniz Silinmitir.Ltfen Sayfanzdan Kodu Kaldrnz. Sayfa Bloggoayrılık yazılarıoyunlarkurye web tasarımı broşürlük dizi izle dizi izleKombi Tesisat Radyo DinleChat paysafe paysafe kartSohbet arkadaş travestitravesti travesti travesti Film izle Sicak Videolar Porno izle film izle e-okul arog Ask-i Memnu Sehitler Olmez sohbet Chat K�zlarla Sohbet sohbet chat kale kapi mirc Bedava Program Yukle Turkce Program Indir Celik Konstr�ksiyon evden eve nakliyat Toplist