|
Bu derste FMOD'un kullanan basit bir uygulama yapacağız. Öncelikle FMOD'u kullanabilmek için http://www.fmod.org 'dan Fmod 3.75 i indimeniz gerekiyor. Daha sonra fmod.h ve fmod_errors.h ı ya derleyicinizin include klasörüne yada projenizin bulunduğu klasöre kopyalayın.
Main.cpp: #include <stdio.h> //windows için header'lar #include<conio.h> #include <windows.h> // linux de derlemek için yukardakileri kaldırıp // bunlar ekleyin //#include "../../api/inc/wincompat.h" #include <stdlib.h> // fmod header'ları #include "fmod.h" #include "fmod_errors.h"
#include comment(lib, "fmodvc.lib")
// Pointer'ımızı yaratıyoruz. FSOUND_SAMPLE *sample = 0;
int main() { // Dll versiyonunu karşılaştır if (FSOUND_GetVersion() < FMOD_VERSION) { // yanlış ise hata mesajı ver. printf("Dll versiyonu yanlıs.\n",FMOD_VERSION); exit(1); }
// FMOD u init'lıyoruz. if (!FSOUND_Init(44100, 32, 0)) { printf("%sn", FMOD_ErrorString(FSOUND_GetError())); // Basarisiz olunursa program kapanacak exit(1); }
// Herşey tamamsa ses dosyasını yükle. // sesin tekrarlamasını istemiyorsanız FSOUND_LOOP_NORMAL yerine // FSOUND_NORMAL yazmalısınız sample = FSOUND_Sample_Load(FSOUND_UNMANAGED,"sample.ogg", FSOUND_LOOP_NORMAL | FSOUND_HW2D , 0, 0); // Herhangi bos bir kanaldan ornegimizi caliyoruz. FSOUND_PlaySound(FSOUND_FREE,sample);
// Bir tusa basilmasini bekliyoruz getch();
// Ornegimizi saliyoruz FSOUND_Sample_Free(sample); // ve Fmod u kapatiyoruz FSOUND_Close(); }
Fmod'daki bazı fonksiyonlar
// Bir kanali açip kapamaya yarar. FSOUND_SetMute(int channel, bool mute); // Kanalin sag yada soldan gelecegini belirler. 0 hep sol, 255 ise hep sag degeridir, 128 ise esit dagitmak için kullanilir FSOUND_SetPan(int channel,int pan); // Kanalin ses seviyesini ayarlar. 0 en az 255 en yuksek degerdir FSOUND_SetVolume(int channel,int volume); // Kanalda çalan sesi durdurur FSOUND_StopSound(int channel); // Bu fonksiyon ile sesin istediginiz kismini çaldirabilirisiniz. FSOUND_SetCurrentPosition(int channel,int position); // Kanalin orneklendirme frekansini degistirir, örnek olarak 44100, 22050 gibi FSOUND_SetFrequency(int channel,int frequency); // Fmod un içinde tanimli olan ses efektlerini uygulamaya saglar. Örnek, echo, reverb, chorus, distortion FSOUND_FX_Enable(int channel,int fxtype); // Kanaldaki sesi duraklatır FSOUND_SetPaused(int channel,bool paused); // Kanalin ses degerini dondurur ( 0 - 255 ) FSOUND_GetVolume(int channel); // Kanalda oynayan sesi dondurur (pointer) aksi halde NULL dondurur FSOUND_GetCurrentSample(int channel); // Kanalda oynayan sesin orneklenme hizini dondurur FSOUND_GetFrequency(int channel); // Kanalda ses varsa TRUE yoksa FALSE dondurur FSOUND_IsPlaying(int channel);
Bu fonksiyonları kullanabilmek için hangi kanaldan çalınacağını belirlememiz gerekiyor. Aşağıdaki örnekte olduğu gibi. ... int channel; channel = FSOUND_PlaySoundEx(FSOUND_FREE, samp1, NULL, TRUE); FSOUND_PlaySound(channel,samp1); FSOUND_SetVolume(channel,255); ...
Fmod hakkında daha detaylı bilgi için sdk'sındaki dökümanlara bakabilirsiniz. Gönderen Üye: Ercan Gerçek
|