Curso completo de DarkGdk
Gameprog - Escola de programação de jogos digitais
Contato: gameprog.br@gmail.com
Fase 7.2

index << >>



07.2 Música

07.2 Música	
Segue abaixo o elenco de funções para tratamento de música:

dbLoadMusic( sArquivo, nMusica)
void dbLoadMusic ( char* szFilename, int iMusica )	
Essa função carrega um arquivo de música no formato midi ou mp3 e identifica-a
com o handle nMusica pelo qual a música vai sofrer manipulações posteriores.	

Ex.: dbLoadMusic ("c:\\gameprog\\gdkmedia\\musica\\amostra_musica.mp3",1);

---------------------------------------------------------------------------
dbDeleteMusic (nMusica)
void dbDeleteMusic ( int iMusic )	
Essa função deleta a música especificada nMusica.

Ex.: dbDeleteMusic(1);


---------------------------------------------------------------------------
dbPlayMusic (nMusica)
void dbPlayMusic ( int iMusic )	
Essa função toca a música especificada.

Ex.: dbPlayMusic(1);


---------------------------------------------------------------------------
dbLoopMusic (nMusica)
void dbLoopMusic ( int iMusic )	
Essa função configura a música especificada para tocar continuamente. Se
a música estiver parada, essa função toca a música também.

Ex.: dbLoopMusic(1);


---------------------------------------------------------------------------
dbStopMusic (nMusica)
void dbStopMusic ( int iMusic )	
Essa função pára a música especificada.

Ex.: dbStopMusic(1);


---------------------------------------------------------------------------
dbPauseMusic (nMusica)
void dbPauseMusic ( int iMusic )	
Pausa a música especificada.

Ex.: dbPauseMusic(1);


---------------------------------------------------------------------------
dbResumeMusic ( nMusica)
void dbResumeMusic ( int iMusic )	
Continua com a execução da música especificada que foi pausada previamente.	

Ex.: dbResumeMusic(1);


---------------------------------------------------------------------------
dbSetMusicVolume (nMusica, nVolume)
void dbSetMusicVolume ( int iMusic, int iVolume )	
Configura o volume (nVolume) de som da música especifida (nMusica);

Ex.: dbSetMusicVolume (1,50);


---------------------------------------------------------------------------
dbMusicExist ( nMusica)
int dbMusicExist ( int iMusic )	
Retorna 1 caso a música especificada exista.

Ex.:  
dbText (10,10,dbStr (dbMusicExist(1))); dbText (50,10, "dbMusicExist(1)" ); 


---------------------------------------------------------------------------
dbMusicPlaying (nMusica)
int dbMusicPlaying ( int iMusic )	
Retorna 1 caso a música especificada esteja tocando.

Ex.:
dbText (10,30,dbStr (dbMusicPlaying(1))); dbText (50,30, "dbMusicPlaying(1)" );

---------------------------------------------------------------------------
dbMusicLooping (nMusica)
int dbMusicLooping ( int iMusic )	
Retorna 1 caso a música especificada esteja configurar para tocar continuamente.

Ex.:
dbText (10,50,dbStr (dbMusicLooping(1))); dbText (50,50, "dbMusicLooping(1)" );

---------------------------------------------------------------------------
dbMusicPaused (nMusica)
int dbMusicPaused ( int iMusic )	
Retorna 1 caso a música especificada esteja pausada.

Ex.:
dbText (10,70,dbStr (dbMusicPaused(1))); dbText (50,70, "dbMusicPaused(1)"); 

---------------------------------------------------------------------------
nVolume = dbMusicVolume (nMusica)
int dbMusicVolume ( int iMusic )	
Retorna o volume ( nVolume) configurado para a música especificada.	

Ex.:
dbText (10,90, "    "); // Limpe o espaço antes de imprimir
dbText (10,90,dbStr (dbMusicVolume(1))); dbText (50,90, "dbMusicVolume(1)" );

---------------------------------------------------------------------------
nTrilhas = dbGetNumberOfCDTracks()
int dbGetNumberOfCDTracks ( void )	
Obtém a quantidade de músicas presente no cd de aúdio padrão. 

Ex.:
dbText (10,110,dbStr (dbGetNumberOfCDTracks() )); 
dbText (50,110, "dbGetNumberOfCDTracks( )" );  	

---------------------------------------------------------------------------
dbLoadCDMusic ( nTrilha, nMusica)
void dbLoadCDMusic ( int iTrack, int iMusic )	
Carrega uma trilha do cd identificando-a com o handle nMusica. É permitido 
apenas carregar uma música de cd por vez.

Ex.:
dbLoadCDMusic (4,8);
dbPlayMusic(8);    

Veja nosso programa exemplo:

// tst_musica.cpp // Esse programa mostra como usar as funções de música #include "DarkGDK.h" // Protótipo das funções void initsys(); // inicializa o sistema void tst_musica(); // Testa funções de música void menu(); // Mostra um menu de opções na tela // Cores const int nPreto = 0; const int nBranco = 0xFFFFFF; const int nAzul = 0x0000FF; int terminar_app = 0; // ---------------------------------------------------------------------------- void DarkGDK ( void ) { // Começo da aplicação DarkGdk initsys(); // Carrega uma música para teste dbLoadMusic ("c:\\gameprog\\gdkmedia\\musica\\amostra_musica.mp3",1); while ( LoopGDK ( ) ) { menu(); tst_musica(); if (terminar_app == 1) return; dbSync ( ); } // fim do while return; } // fim da função: DarkGDK // ---------------------------------------------------------------------------- void initsys() { // Esta função inicializa o sistema dbSyncOn( ); dbCLS(nBranco); dbSetWindowTitle("tst_musica.cpp"); dbSetTextOpaque(); } // fim da função: initsys() // ---------------------------------------------------------------------------- void menu() { // Variáveis de trabalho para mostrar texto int xpos = 260; int ypos = 10; int coluna = xpos; int linha = ypos; int espaco_entrelinhas = 20; int ncx = 0; // Nossa lista de opções char *slista[8] = {"1- dbPlayMusic(1)", "4- dbStopMusic(1)", "q- para sair ou botao direito do mouse", "6- dbLoopMusic(1)", "8- dbPauseMusic(1)", "9- dbResumeMusic(1)", "a- dbSetMusicVolume(1,50)", "c- teste cd"}; // Mostre a lista dbInk (nAzul, nBranco); for (ncx = 0; ncx < 8; ncx++) { linha = ypos + ( ncx * espaco_entrelinhas ); dbText (coluna, linha, slista[ncx]); } // fim do for(ncx) } // menu().end // ---------------------------------------------------------------------------- void tst_musica() { // Execute enquanto não for pressionado "q" ou o botão direito do mouse while (dbMouseClick() != 2) { char *tecla = dbInKey(); if (!strcmp(tecla,"1")) dbPlayMusic (1); if (!strcmp(tecla,"4")) dbStopMusic (1); if (!strcmp(tecla,"q"))break; if (!strcmp(tecla,"6")) dbLoopMusic (1); if (!strcmp(tecla,"8")) dbPauseMusic(1); if (!strcmp(tecla,"9")) dbResumeMusic(1); if (!strcmp(tecla,"a")) dbSetMusicVolume(1,50); if (!strcmp(tecla,"c")) { dbLoadCDMusic (4,8); dbPlayMusic(8); dbSetMusicVolume (8,100); }// endif ("c") dbInk (nPreto, nBranco); dbText (10,10,dbStr (dbMusicExist(1) )); dbText (50,10, "dbMusicExist(1)" ); dbText (10,30,dbStr (dbMusicPlaying(1) )); dbText (50,30, "dbMusicPlaying(1)" ); dbText (10,50,dbStr (dbMusicLooping(1) )); dbText (50,50, "dbMusicLooping(1)" ); dbText (10,70,dbStr (dbMusicPaused(1) )); dbText (50,70, "dbMusicPaused(1)" ); dbText (10,90, " "); // Limpe o espaço antes de imprimir dbText (10,90,dbStr (dbMusicVolume(1) )); dbText (50,90, "dbMusicVolume(1)" ); dbText (10,110,dbStr (dbGetNumberOfCDTracks() )); dbText (50,110, "dbGetNumberOfCDTracks( )" ); dbSync(); } // endwhile // Delete os arquivos utilizados if (dbMusicExist(1)) dbDeleteMusic (1); if (dbMusicExist(8)) dbDeleteMusic (8); terminar_app = 1; } // tst_musica().end

index << >>


Produzido por Gameprog: Jair Pereira - Setembro/2013 © gameprog.br@gmail.com http://www.gameprog.com.br http://www.nucleoararat.com.br