bonjour,
je cherche le moyen d'intégrer un son ou une image a l'application notamment pour accélérer la vitesse du logiciel mais je ne sais plus comment on fait, pouriez vous m'éclairer de vote lanterne
merci
bonjour,
je cherche le moyen d'intégrer un son ou une image a l'application notamment pour accélérer la vitesse du logiciel mais je ne sais plus comment on fait, pouriez vous m'éclairer de vote lanterne
merci
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
(\_/)
(O.o)
(> <)
This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
en fait il faudrait utiliser brcc32.exe pour modifier un fichier rc en rec, mon rc je l'ai créer avec le blocnote, enfin bref ça marche pas, sinon pour eviter de rendre mon application trop lourde je pourrais utiliser ça :
mais le probleme ici c'est que le systeme prend du temps pr le charger, donc au lancement de l'application, y aurait il moyen de lancer ce chargement en arriere plan, sans que cela bloc l'utilisateur dans ses manipulations??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //Pour jouer un son au format WAV, il faut déclarer l'unité MMSystem dans la clause uses : var Hres: THandle; Pres: PChar; begin Hres := FindResource(0, pchar('MONWAV2'), 'WAV'); // Recherche de la Ressource Hres := LoadResource(0, Hres); // On charge la Ressource Pres := LockResource(Hres); sndPlaySound(Pres, SND_MEMORY); // On joue le WAV UnLockResource(Hres); FreeResource(Hres); End;
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
(\_/)
(O.o)
(> <)
This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
Salut.
Perso je ferais différemment (en fait je comprends même pas ton THandle lol).
Moi je fais comme cela :
{$R son_res.res}
procedure TForm1.Button1Click(Sender: TObject);
var RS : TResourceStream;
begin
RS := TResourceStream.Create(0, 'MON_SON', RT_RCDATA);
MMSystem.PlaySound(RS.Memory, 0, SND_MEMORY or SND_NODEFAULT or SND_ASYNC);
RS.Free;
end;
ça charge la ressource (qui s'appelle MON_SON qui est contenue dans son_res.res et qui est de type RCDATA) dans un ResourceStream qui est ensuite lu grâce au MMSystem (à placer dans les Uses).
Je vois pas plus simple (du moins en intégrant le son à l'exe).
bonjour,
j'ai un souci à peu près équivalent :
je veux jouer SHIELD.Wav
après avoir crée mon fichier .rc et son compilé .res
intégration de la directive dans le source et
j'exécute le même code qu'Avogadro
sur point d'arrêt, Hres et Pres ne sont pas vides
mais le son NE SORT PAS juste un toc sonore..
je dois certainement avoir oublié un truc !?
merci par avance
J'avais une application qui dans un entrepot devait envoyer à un haut parleur des numéros, je ne me suis pas emerdé, j'ai stocké les sons dans des fichiers Wav, et je lançais ceci
mais, cela chargeait à chaque fois, j'ai donc utiliser aussi des TMemoryStream (pour info, le TResourceStream est un TMemoryStream qui encapsule la triplette Find/Load/LockResource), mais je créais une instance par fichier (je ne voulais pas m'emmerder avec la compilation, les wav étaient stockés dans un fichier zip, au lancement, dezip dans temp, load temp, suppression temp) dans un Thread lancé au démarrage (il y avait plusieurs threads le temps que tout ça se lance ne posait pas problème, car pour démarrer l'application touts les voyants devait passer au vert, la dernière étape étant la connexion à la trieuse de l'entrepot)
Code : Sélectionner tout - Visualiser dans une fenêtre à part PlaySound(PChar(SoundFileName), 0, SND_FILENAME);
Le lancement du son était faite via une TThreadList indiquant les fichiers (valeur numérique) à lire séquentiellement et les éventuelles temps de pause ...
Cela consomme de la mémoire, mais les ressources sont prêtes à être utilisé très rapidement ...
@Squall78 , tu as la balise [CODE ] plus simple que des faire ses propres couleurs ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
la méthode de squall78 marche :
et celle-ci aussi (à la place de celle d'avogadro..)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.Button1Click(Sender: TObject); begin RS := TResourceStream.Create(0, 'SHIELD', 'WAVE'); MMSystem.PlaySound(RS.Memory, 0, SND_MEMORY or SND_NODEFAULT or SND_ASYNC); RS.Free; end;
laquelle est la meilleure ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TForm1.Button1Click(Sender: TObject); var MonSon: Pointer; begin MonSon := LockResource(LoadResource(HInstance, FindResource(HInstance, 'SHIELD', 'WAVE'))); SndPlaySound(MonSon, Snd_ASync or Snd_Memory); end;
cantador
Perso, j'utilise Res_hia de DelphiCool pour intégrer des fichiers de données dans mon programme... A possèder absolument!
Concernant le sample WAV, j'utilise le module de Bass plutôt que SndPlaySound car, en plus d'être plus compatible (DirectSound) il permet de réaliser bien plus de chose, comme modifier le volume, la balance, la position de lecture, la vitesse, etc... Tu trouveras un exemple et les sources dans ce sujet.
ps: Pensez à utiliser la balise CODE pour encadrer les sources dans vos messages
De retour parmis vous après 10 ans!!
@Sub0 :
j'utilise aussi le soft de delphicool..bien pratique toutefois, il aurait été préférable de mettre un menu ou un bouton pour ajouter..
Le module de bass, oui mais tout dépend de ce que tu as à faire..
Moi c'est juste pour sonoriser une apparition de forme..donc..
Mais ce n'était pas la question que j'avais posée :
pm : je voulais juste savoir quelle est la meilleure méthode de programmation :
le TStream ou le Pointer ???
nb : j'ai bien noté la balise "CODE"
A bientôt
cantador
et pourquoi ne pas utiliser des .mp3 ?
Avec un mediaplayer
J'ai un son .wav, je ne vais me compliquer à le transformer en .mp3...
A noter que ça marche bien avec chacune des deux méthodes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager