Plazma sayı 1, sayfa 27

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 27

İlk parametre ses dosyasını çalacak kanalı belirtir. -1 değeri ilk uygun ses kanalına bu görevi verir. İkinci parametre çalınacak olan ses dosyasıdır. Üçüncü parametre sample'ın kaç defa çalacağını belirtir. Bir hata oluşursa sample çalınamazsa fonksiyon -1 değerini döndürür.

SDL_Mixer içinde ayrıca ses dosyalarını çalarken basit efektler de uygulamanızı sağlayan fonksiyonlar bulunmaktadır. Örneğin Mix_FadeInChannel fonksiyonu ile bir ses dosyasını (sample) fade in (yavaş yavaş ortaya çıkma) efekti uygulayarak çalabiliriz.

if(Mix_FadeInChannel(-1, sample, 1, 1000)==-1) { fprintf(stderr,"Mix_FadeInChannel: %s\n",Mix_GetError()); }

Bütün parametreler Mix_PlayChannel fonksiyonu ile aynıdır bu fonksiyonda. Sadece son parametre olan 1000 değeri efektin kaç milisaniye süreceği değerini bildirir. Bir de bu fonksiyonun tersi olarak Mix_FadeOutChannel fonksiyonu bulunmaktadır.

Mix_FadeOutChannel(int channel, int ms);

Bu fonksiyon ile belirtilen kanal belirtilen milisaniye içinde sesi kısılarak kapatılır. Bu komut zaten çalmakta olan bir kanala uygulanacağı için ses dosyasını belirtmeye gerek yoktur. Ayrıca Mix_HaltChannel komutuyla sesi anında kapatabilirsiniz.

Mix_HaltChannel(int channel);

şeklinde uygulanır. Kanal değeri olarak ya kapatmak istediğiniz kanalın numarasını ya da bütün kanalları kapatmak için -1 değerini verebilirsiniz. -1 değeri diğer bütün fonksiyonlarda da aynı şekilde bütün kanalları belirtir. Kanallarla ilgili yapabileceklerimiz arasında kanalın ses seviyesini değiştirebilirsiniz.

Mix_Volume(int channel, int volume);

Channel ile kanalın numarası ya da -1 ile bütün kanallar belirtilebilir. Volume ise sesin yüksekliğinin belirtildiği değişkendir. Bu fonksiyonun bir de ses dosyasına özel ses seviyesi belirtebileceğiniz versiyonu bulunmaktadır.

Mix_VolumeChunk(Mix_Chunk *chunk, int volume);

Chunk değişkeni ile verilen ses dosyasının ses yüksekliği volume değişkenine göre değiştirilir.

Sırada müzik dosyaları ile ilgili işlemler var.

Mix_Music *music;

Mix_Music veri yapısı hafızada müzik dosyalarını saklayacağımız yapıdır. Müzik dosyaları Mix_LoadMUS fonksiyonu ile yüklenir.

if(!(music=Mix_LoadMUS("music.mp3"))) { fprintf(stderr,"Mix_LoadMUS(\"music.mp3\"): %s\n", Mix_GetError()); }

Bu fonksiyon ile wav, mod, midi, ogg ve mp3 dosyalarını yükleyebilirsiniz.

Mix_FreeMusic(music); music=NULL;

Yukarıdaki yöntem ile de işimiz bittiğinde ya da programı kapatırken müzik dosyalarının verilerini hafızadan temizleriz.

Müzik dosyalarını çalmak için Mix_PlayMusic fonksiyonu kullanılır.

Klavyeyle gezinmek için ← ve → tuşları.