
Progman (Normal User)
Newbie
    
Messaggi: 16
Iscritto: 26/02/2013
|
Ciao a tutti,
Volevo sapere come poter inserire un tema musicale in sottofondo in un programma pascal, cioè che funziona mentre viene eseguito il programma, senza bloccare il programma durante l'esecuzione dei suoni...
Grazie in anticipo!!
|
|

()
Newbie
    
Messaggi:
Iscritto:
|
non credo tu possa farlo così direttamente...
hai 2 opzioni:
1: lanciare un programma esterno il suono, per musica
Codice sorgente - presumibilmente Pascal |
program suono; uses dos; //... exec(<percorso eseguibile programma>,<file musicale>); //...
|
2: usare la cassa interna del pc, non potrai avere musica-musica, ma solo dei 'beep' che dovrai dare uno per uno. per questo però o ti ingegni a fare sì che le note vengano fatte una alla volta nel corso del programma oppure
Codice sorgente - presumibilmente Pascal |
program suono; uses windows,dos; //... exec('c:\windows\system32\cmd.exe',<file musicale>); //...
|
in modo da fare si che non venga eseguito il secondo programma sulla stessa console.
Ultima modifica effettuata da il 26/02/2013 alle 17:07 |
|

Progman (Normal User)
Newbie
    
Messaggi: 16
Iscritto: 26/02/2013
|
Scusa un secondo, ma in pratica con il secondo suono sorgente gli dico di eseguire un file musicale? ma questo file deve essere per forza un programma pascal che riproduce una musichetta o anche un file audio?
|
|

Progman (Normal User)
Newbie
    
Messaggi: 16
Iscritto: 26/02/2013
|
Scusa un secondo, ma in pratica con il secondo suono sorgente gli dico di eseguire un file musicale? ma questo file deve essere per forza un programma pascal che riproduce una musichetta o anche un file audio?
|
|

Phi (Member)
Expert
    
Messaggi: 241
Iscritto: 30/12/2009
|
Quando usavo Windows avevo trovato questo modo per file musicali, l'ho cercato fra i vecchi file.
Mi sembrava che andassero aggiunti al file come risorsa in formato wav.
Poi si usa questo codice :
Codice sorgente - presumibilmente Delphi |
const SND_MEMORY = 4; SND_ASYNC = 1; SND_RESOURCE = $40004; Function PlaySound(x1: PChar; x2: HMODULE; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name {$ifdef UNICODE}'PlaySoundW' {$else}'PlaySoundA' {$endif}; procedure PlayResSound(ResIndex: integer); begin PlaySound(PChar(ResIndex),HInstance, snd_ASync or snd_Memory or snd_Resource); end;
|
Non ricordo però come suonare file diversi.
Ultima modifica effettuata da Phi il 27/02/2013 alle 16:26 |
|

Progman (Normal User)
Newbie
    
Messaggi: 16
Iscritto: 26/02/2013
|
Scusa @Phi , ti posso chiedere un favore? Mi potresti spiegare un po' passo a passo come fare, che io ancora, non essendo molto pratico del pascal, certe cose non le capisco?
|
|

Phi (Member)
Expert
    
Messaggi: 241
Iscritto: 30/12/2009
|
Prova a fare così. Converti il file in formato wav (purtroppo occuperà un po').
Crei un file nome.rc e aggiungi la riga n WAVE audio.wav sostituendo a n un numero che poi identificherà il file e a audio il nome del file. Esegui da prompt il programma "windres" aggiungendo come argomenti " nome.rc nome.res" così windres creerà il file nome.res che contiene audio.wav e che potra esser agguinto al tuo programma tramite questa riga :
Codice sorgente - presumibilmente Plain Text |
Ultima modifica effettuata da Phi il 27/02/2013 alle 16:17 |
|

Progman (Normal User)
Newbie
    
Messaggi: 16
Iscritto: 26/02/2013
|
ok grazie
|
|