Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Musica di sottofondo in Pascal
Forum - Pascal - Musica di sottofondo in Pascal

Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 14:54
Martedì, 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!! :)

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:06
Martedì, 26/02/2013
non credo tu possa farlo così direttamente...
hai 2 opzioni:
1: lanciare un programma esterno il suono, per musica
Codice sorgente - presumibilmente Pascal

  1. program suono;
  2. uses dos;
  3. //...
  4.      exec(<percorso eseguibile programma>,<file musicale>);
  5. //...


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

  1. program suono;
  2. uses windows,dos;
  3. //...
  4.      exec('c:\windows\system32\cmd.exe',<file musicale>);
  5. //...


in modo da fare si che non venga eseguito il secondo programma sulla stessa console.
:k:

Ultima modifica effettuata da il 26/02/2013 alle 17:07
PM Quote
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 19:02
Martedì, 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?

PM Quote
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 19:06
Martedì, 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?

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 23:08
Martedì, 26/02/2013
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

  1. const
  2. SND_MEMORY = 4;
  3. SND_ASYNC = 1;
  4. SND_RESOURCE = $40004;
  5. Function PlaySound(x1: PChar; x2: HMODULE; x3: DWORD): BOOL;stdcall; external 'winmm.dll' name {$ifdef UNICODE}'PlaySoundW' {$else}'PlaySoundA' {$endif};
  6.  
  7. procedure PlayResSound(ResIndex: integer);
  8. begin
  9.   PlaySound(PChar(ResIndex),HInstance, snd_ASync or snd_Memory or snd_Resource);
  10. end;


Non ricordo però come suonare file diversi.

Ultima modifica effettuata da Phi il 27/02/2013 alle 16:26
PM Quote
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 14:08
Mercoledì, 27/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? :-?

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 16:08
Mercoledì, 27/02/2013
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

  1. {$r percorso/nome.res}


Ora potrai, usando la funzione PlayResSound(n). far suonare il file contrassegnato dal numero n.

La funzione PlaySound che uso fa parte delle APi windows quindi se la usi non potrai usare il programma su altri sistemi.
Ho trovato questa pagina se vuoi approfondirla : http://msdn.microsoft.com/en-us/library/windows/desktop/dd ...

Poi ho trovato anche questo pagina che dovresti leggere :
http://wiki.freepascal.org/Multimedia_Programming

Ultima modifica effettuata da Phi il 27/02/2013 alle 16:17
PM Quote
Avatar
Progman (Normal User)
Newbie


Messaggi: 16
Iscritto: 26/02/2013

Segnala al moderatore
Postato alle 14:33
Giovedì, 28/02/2013
ok grazie:om::)

PM Quote