Heldinho Postado Agosto 15, 2004 Denunciar Share Postado Agosto 15, 2004 Galera, to precisando tocar uma musica wav em um programa que eu fiz, não precisa do usuario escolher a musica, vamos supor que o nome da musica seja intro.wav.. alguém sabe como me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 15, 2004 Denunciar Share Postado Agosto 15, 2004 Dê uma olhada aqui:http://www.flexbeta.net/forums/index.php?showtopic=2609Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Agosto 15, 2004 Autor Denunciar Share Postado Agosto 15, 2004 cara, muito obrigado, vou testar isto mais tarde, qualquer coisa eu posto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Agosto 15, 2004 Autor Denunciar Share Postado Agosto 15, 2004 cara, tem um problema, isto so funcionou no bcc, e eu estou usando o djgpp para fazer meu programa, e mudar pra o bcc a este ponto é = comenter suicidio... se você souber como fazer a lib funcionar no djgpp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 15, 2004 Denunciar Share Postado Agosto 15, 2004 cara, tem um problema, isto so funcionou no bcc, e eu estou usando o djgpp para fazer meu programa, e mudar pra o bcc a este ponto é = comenter suicidio... se você souber como fazer a lib funcionar no djgpp Infelizmente não sei te ajudar nesse caso. Achei aquele exemplo porque já conhecia essa função da API do Windows (uso VB), então foi só procurar por ela em um site de busca (juntando C++ à procura). No caso, acredito que você tenha que procurar como se declara a Win32 API no DJGPP (pensando bem, não deveria ser do mesmo jeito que em qualquer outro compilador?).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Agosto 16, 2004 Autor Denunciar Share Postado Agosto 16, 2004 não porque não tenho a win32 api(o arquivo .zip), acontece q meu bcc já veio com ela, saca? você sabe onde eu consigo o instalador da win32 api? falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 16, 2004 Denunciar Share Postado Agosto 16, 2004 Não se tem a API Win32 em um arquivo... A API do Windows fica em suas DLLs como a user32, kernel32, winmm (que é usada no caso), etc. Ou seja, isso não se instala; já vem com o Windows. Como é garantido que todo Windows instalado em qualquer máquina terá esses determinados arquivos, não é necessário (e é até perigoso) colocá-los junto do programa. Digo perigoso porque a winmm.dll do Win98 pode ser diferente da winmm.dll do WinXP, por exemplo. Diferente no sentido de que a implementação seja diferente, porém as funções exportadas (o que usamos dela) são as mesmas. Por essa razão seu programa funcionará em qualquer sistema Windows.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Agosto 16, 2004 Autor Denunciar Share Postado Agosto 16, 2004 Cara, obriado pela explicação, eu que expliquei errado o que eu queria..bom, vamos lá... estou criando um"os", mas e entre aspas mesmo , e ele roda em dos... para mouse eu usei o driver de mouse para DOS que vem no disco de boot do dos 6.1, agora para o som eu nem imagino se existe um driver pra dos, ou mesmo uma biblioteca capaz de produzir sons em dos(sem ser pelo pc speaker).. Alguém me dá uma luz? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Woody Postado Agosto 17, 2004 Denunciar Share Postado Agosto 17, 2004 Dá uma olhada nesse linkhttp://www.programmersheaven.com/zone3/index.htmdeve ter o que voce precisa.Até +GomesObs: Aguardo o meu nome nos créditos hein???heheheheheheheh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Agosto 17, 2004 Autor Denunciar Share Postado Agosto 17, 2004 cara, eu achei isto: http://www.programmersheaven.com/search/do...sp?FileID=15971 , um comentário até falou que e funciona perfeitamente somente em C, mas não sei usar .. bom, baixei o file.zip e separei os arquivos que estao dentro daquele cpp.... porem não consegui usar a funcao WaveFile_Read(???? <-- não sei o que colocar aqui!); .. Gomes, me ajuda!!Olha o erro que dá:c:\meus documentos\teste.cpp: In function `int main(...)': <-- so trocar o void por int, mas e os outros?c:\meus documentos\teste.cpp:81: passing `const char *' as argument 1 of `WaveFile_Init(WaveFile *)'c:\meus documentos\teste.cpp:82: passing `const char *' as argument 2 of `WaveFile_Read(const char *, WaveFile *, void **)'Agora olha o meu código:#include <mem.h> #include <stdlib.h> #include <stdio.h> #include "wavefile.hpp" void WaveFile_Init(WaveFile *wf) { memcpy(wf->header.riff , (const void *)"RIFF", 4); memcpy(wf->header.rifftype, (const void *)"WAVE", 4); memcpy(wf->ch_format.chunk_id, (const void *)"fmt ", 4); wf->ch_format.chunksize=16; wf->format.wf.wFormatTag=WAVE_FORMAT_PCM; memcpy(wf->ch_data.chunk_id, (const void *)"data", 4); }; void WaveFile_Set(WaveFile *wf, short channels, long samplerate, short datasize) { WaveFile_Init(wf); wf->format.wf.nChannels=channels; wf->format.wf.nSamplesPerSec=samplerate; wf->format.wf.nAvgBytesPerSec=samplerate; wf->format.wf.nBlockAlign=datasize*channels/8; wf->format.wBitsPerSample=datasize; }; void WaveFile_Fin(WaveFile *wf, short channels, long samplerate, short datasize, long totalsamples) { WaveFile_Set(wf, channels, samplerate, datasize); wf->ch_data.chunksize=totalsamples * wf->format.wf.nBlockAlign; wf->header.filesize=wf->ch_data.chunksize + 36; }; short WaveFile_Write(const char *filename, WaveFile *wf, void *data) { FILE *wfile; if( ( wfile=fopen(filename, "wb") )!=NULL ) { fwrite( wf, sizeof(WaveFile), 1, wfile); fwrite( data, wf->ch_data.chunksize , 1, wfile); fclose(wfile); return(1); } else { // printf("Error in opening the file!\n"); return(0); } } float wave_length(WaveFile *wf) /* Return wave length in secs. */ { float len=(wf->ch_data.chunksize / wf->format.wf.nChannels) / (float)(wf->format.wf.nSamplesPerSec); return(len); }; short WaveFile_Read(const char *filename, WaveFile *wf, void **data) { FILE *wfile; if( ( wfile=fopen(filename, "rb") )!=NULL ) { fread( wf, sizeof(WaveFile), 1, wfile); *data=(char*)malloc(wf->ch_data.chunksize); fread( *data, wf->ch_data.chunksize , 1, wfile); fclose(wfile); return(1); } else { // printf("Error in opening the file!\n"); return(0); } } void main(void){ WaveFile_Init("teste.wav"); WaveFile_Read("teste.wav","teste.wav"); }Ahh, vou colocar seu nome nos créditos sim kkkkkkkkkkkkkkkkkkk, mas ainda não sei aonde vou colocar os créditos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Woody Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Vish brow é complicadin héin!!!!Mas é o seguinte, no Read, ele não sai tocando não, ele vai carregar a musica (primeiro parâmetro) e jogar os dados para aí ser tocado....Esse *wm é uma struct que informa os padrões da musica ....Só poderia ir mais afundo se tivesse tempo....Em todo caso é uma boa esse programa, mas não vi funcionalidade de tocar....Mas o que tem aí já é uma base bem forte por onde começar...Até+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Heldinho
Galera, to precisando tocar uma musica wav em um programa que eu fiz, não precisa do usuario escolher a musica, vamos supor que o nome da musica seja intro.wav.. alguém sabe como me ajudar?
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.