Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    [C++]Includere wav nell'eseguibile

    Sto creando un gioco in cui l'obiettivo è cliccare un pulsante che si muove in modo casuale ad una velocità variabile. Per fare ciò sto usando c++ builder dell'Embarcadero (una versione successiva a borland c++ builder ma con lo stesso funzionamento).
    Poiché sul bottone è raffigurato un palloncino, volevo fare in modo che cliccandolo si sentisse il rumore dello scoppio di un palloncino. Così ho usato questo codice che apre un MediaPlayer e lo fa partire:
    codice:
    void __fastcall TForm1::BitBtn3Click(TObject *Sender)
    {
     MediaPlayer1->Open();
     MediaPlayer1->Play();
    }
    Nelle proprietà del MediaPlayer ho inserito "D:\c++\Scoppio.wav" sotto FileName.
    In questo modo il programma funziona, ma quando lo copio in un altro computer chiaramente da un errore in quanto non esiste nessun "D:\c++\Gioco Riflessi\Scoppio.wav".
    La mia domanda quindi è: esiste un modo per includere Scoppio.wav nell'eseguibile e associarlo al FileName del MediaPlayer?

  2. #2

    Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da marandavide
    La mia domanda quindi è: esiste un modo per includere Scoppio.wav nell'eseguibile e associarlo al FileName del MediaPlayer?
    Sì, includi il file come risorsa. Dovrai aggiungere un file RC al progetto ed inserire una riga che definisce la risorsa, qualcosa tipo:

    codice:
    WAV_SCOPPIO    WAVE    "SCOPPIO.WAV"
    Per riprodurre il file quando serve, scomodare MediaPlayer è eccessivo, ti basta usare la PlaySound come segue:

    codice:
    PlaySound(MAKEINTRESOURCE(WAV_SCOPPIO), HInstance, SND_ASYNC | SND_RESOURCE);

  3. #3

    Re: Re: [C++]Includere wav nell'eseguibile

    Grazie, ma...
    Originariamente inviato da ESSE-EFFE
    Sì, includi il file come risorsa. Dovrai aggiungere un file RC al progetto ed inserire una riga che definisce la risorsa, qualcosa tipo:

    codice:
    WAV_SCOPPIO    WAVE    "SCOPPIO.WAV"
    Potresti dirmi come aggiungere il file RC?

    Originariamente inviato da ESSE-EFFE
    Per riprodurre il file quando serve, scomodare MediaPlayer è eccessivo, ti basta usare la PlaySound come segue:

    codice:
    PlaySound(MAKEINTRESOURCE(WAV_SCOPPIO), HInstance, SND_ASYNC | SND_RESOURCE);
    Potresti dirmi che libreria serve per PlaySound?

    Grazie di nuovo e scusa per l'ignoranza

  4. #4

    Re: Re: Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da marandavide
    Grazie, ma...

    Potresti dirmi come aggiungere il file RC?
    E' semplicemente un file con estensione RC (per esempio Risorse.rc) che aggiungi al progetto.

    Originariamente inviato da marandavide
    Potresti dirmi che libreria serve per PlaySound?
    Per questo c'erano Google e/o MSDN: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Devi includere Mmsystem.h.

  5. #5

    Re: Re: Re: Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da ESSE-EFFE
    E' semplicemente un file con estensione RC (per esempio Risorse.rc) che aggiungi al progetto.
    Intendevo come fare a ottenere un file di risorse da un file wav

  6. #6

    Re: Re: Re: Re: Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da marandavide
    Intendevo come fare a ottenere un file di risorse da un file wav
    Non lo devi fare. Crei un file RC e ci inserisci la riga che già ti ho indicato. E lo aggiungi al progetto. Poi ci penseranno compilatore e linker ad andare a prendere il file WAV (dove gli hai detto tu) e a linkarlo (appunto) all'eseguibile.

    WAV_SCOPPIO è solo una costante (integer), puoi definirla dove ti pare:
    codice:
    #define WAV_SCOPPIO 20000 (ad esempio)

  7. #7

    Re: Re: Re: Re: Re: Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da ESSE-EFFE
    WAV_SCOPPIO è solo una costante (integer), puoi definirla dove ti pare:
    codice:
    #define WAV_SCOPPIO 20000 (ad esempio)
    L'ultima domanda: WAV_SCOPPIO la definisco nel progetto originale o in questo file RC? E 20000 per cosa sta?

  8. #8

    Re: Re: Re: Re: Re: Re: Re: [C++]Includere wav nell'eseguibile

    Originariamente inviato da marandavide
    L'ultima domanda: WAV_SCOPPIO la definisco nel progetto originale o in questo file RC? E 20000 per cosa sta?
    Ti conviene definirla in un .H che includerai dove serve. 20000 è un puro esempio, come ho già scritto. Ora che sai come si fa, ti consiglio di documentarti bene sui file RC, ovviamente sul Web trovi tutto il necessario.

  9. #9
    non capisco perché ma il progetto non da errori nella compilazione, però nell'eseguibile non si sente l'audio. Se aiuta, il codice che ho inserito è questo
    Nel file RC:
    codice:
    WAV_SCOPPIO WAVE "Scoppio.wav"
    Nell'header del progetto:
    codice:
    /*..................*/
    
    #define WAV_SCOPPIO 20000
    
    ............*/
    Nel codice sorgente:
    codice:
    #include<vlc.h>
    #include<mmsystem.h>
    /*.............................*/
    void __fastcall TForm1::BitBtn1Click(TObject *Sender) {
     PlaySound(MAKEINTRESOURCE(WAV_SCOPPIO), HInstance, SND_ASYNC | SND_RESOURCE); 
    BitBtn1->Enabled=false; } 
    }
    /*..............*/

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    scusate se mi intrometto, volevo fare una cosa simile, ma con un WMV.

    per il file RC posso seguire lo stesso procedimento no?

    per riprodurre il video poi che è meglio fare? con un comando richiamare il media player predefinito passando il video?
    se si, che path devo passare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.