Accueil > Forum > > > > Sélectionner une carte son
Sélectionner une carte son
dimanche 6 janvier 2008 à 17:13:44 |
Sélectionner une carte son

Francky23012301
|
Salut à tous, Je cherche à sélectionner une carte son parmis plusieurs installées sur le Pc. J'utilise le test suivant pour sélectionner celle par défaut : procedure TForm1.Button1Click(Sender: TObject); var waveF : TWAVEFORMATEX; hWO : HWAVEOUT; begin FillChar(waveF, SizeOf(waveF), 0); If waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0)= MMSYSERR_NOERROR then showmessage('oki'); end;Ps (Pas oublier d'utiliser MMSystem dans les uses) Manque de bol ca ne fonctionne pas : le message n'apparait pas. J'ai beau chercher, je ne vois pas ce qui ne colle pas. Si quelqu'un a une idée  Merci
|
|
dimanche 6 janvier 2008 à 17:39:44 |
Re : Sélectionner une carte son
|
dimanche 6 janvier 2008 à 19:43:56 |
Re : Sélectionner une carte son
|
dimanche 6 janvier 2008 à 23:15:46 |
Re : Sélectionner une carte son

WhiteHippo
|
Bonsoir
En prenant WAVE_MAPPER tu dis au système de choisir le périphérique le plus approprié. Si tu veux le choisir par toi même il faut utiliser son ID (Si tu as deux cartes, la première doit avoir pour valeur 0 et la seconde 1)
Pour faire les choses proprement, on utilise auxGetNumDevs pour obtenir le nombre de peripheriques disponibles, puis auxGetDevCaps dans une boucle pour obtenir les infos de chacun des peripheriques (savoir lequel est lequel) et enfin un waveOutOpen avec le bon uDeviceID.
Cordialement.
"L'imagination est plus importante que le savoir." Albert Einstein
|
|
lundi 7 janvier 2008 à 08:35:00 |
Re : Sélectionner une carte son

Francky23012301
|
Salut,
Je suis d'accord avec toi White Hippo et du reste c'est ce que j'ai fais. Pour le listing no problemo, j'ai bien ma liste de cartes et leur ID. Mais quand je sélectionne la carte son, ca plante :
Du reste fait un essais :
procedure TForm1.Button1Click(Sender: TObject);
var
waveF : TWAVEFORMATEX;
hWO : HWAVEOUT;
begin
FillChar(waveF, SizeOf(waveF), 0);
If waveOutOpen(@hWO, WAVE_MAPPED, @waveF, 0, 0, 0)= MMSYSERR_NOERROR then
showmessage('oki');
end;
Tu vera que le show-message n'a pas lien. Et c'est ca que je capte pas : Pourquoi mon WaveOutOpen plante.
|
|
lundi 7 janvier 2008 à 13:27:31 |
Re : Sélectionner une carte son

WhiteHippo
|
Réponse acceptée !
1 - Ton WAVE_MAPPED dans le code précédent n'a rien à faire ici !! c'est un flag pour l'ouverture du périphérique, flag à utiliser dans fdwOpen c'est à dire dans le dernier élément.
2 - On récupère les erreurs histoire de savoir ce qui ne va pas (J'ai mis tous les défauts même si ceux ci ne peuvent pas tous être générés par cette fonction). Dans ce cas tu verras que l'erreur correspond à un format WAVE invalide, ce qui est normal vu que tu lui passes une structure vide.
procedure TForm1.Button2Click(Sender: TObject); var waveF : TWAVEFORMATEX; hWO : HWAVEOUT; Result : integer ; begin FillChar(waveF, SizeOf(waveF), 0); Result := waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, CALLBACK_NULL) ; case Result of MMSYSERR_NOERROR : showmessage('ok '); MMSYSERR_ERROR : showmessage('unspecified error '); MMSYSERR_BADDEVICEID : showmessage('device ID out of range '); MMSYSERR_NOTENABLED : showmessage('driver failed enable '); MMSYSERR_ALLOCATED : showmessage('device already allocated '); MMSYSERR_INVALHANDLE : showmessage('device handle is invalid '); MMSYSERR_NODRIVER : showmessage('no device driver present '); MMSYSERR_NOMEM : showmessage('memory allocation error '); MMSYSERR_NOTSUPPORTED : showmessage('function isn''t supported '); MMSYSERR_BADERRNUM : showmessage('error value out of range '); MMSYSERR_INVALFLAG : showmessage('invalid flag passed '); MMSYSERR_INVALPARAM : showmessage('invalid parameter passed '); MMSYSERR_HANDLEBUSY : showmessage('handle being used simultaneously on another thread (eg callback) '); MMSYSERR_INVALIDALIAS : showmessage('specified alias not found '); MMSYSERR_BADDB : showmessage('bad registry database '); MMSYSERR_KEYNOTFOUND : showmessage('registry key not found '); MMSYSERR_READERROR : showmessage('registry read error '); MMSYSERR_WRITEERROR : showmessage('registry write error '); MMSYSERR_DELETEERROR : showmessage('registry delete error '); MMSYSERR_VALNOTFOUND : showmessage('registry value not found '); MMSYSERR_NODRIVERCB : showmessage('driver does not call DriverCallback '); WAVERR_BADFORMAT : showmessage('unsupported wave format '); WAVERR_STILLPLAYING : showmessage('still something playing '); WAVERR_UNPREPARED : showmessage('header not prepared '); WAVERR_SYNC : showmessage('device is synchronous ');
else showmessage('Error n°' + inttostr(Result) + ' (' + SysErrorMessage(GetLastError) + ')' ); end ; end;
3 - Réessayes le code ci-dessus avec le code suivant placé juste avant le WaveOutOpen :
with waveF do begin wFormatTag := WAVE_FORMAT_PCM; nChannels := 1; nSamplesPerSec := 8000; nAvgBytesPerSec := 16000; nBlockAlign := 2; wBitsPerSample := 16; cbSize := 0; end ;
Cordialement. "L'imagination est plus importante que le savoir." Albert Einstein
|
|
lundi 7 janvier 2008 à 15:06:12 |
Re : Sélectionner une carte son

Francky23012301
|
Merci White Hippo
Effectivement le problème vient d'ici :
with waveF do
begin
wFormatTag := WAVE_FORMAT_PCM;
nChannels := 1;
nSamplesPerSec := 8000;
nAvgBytesPerSec := 16000;
nBlockAlign := 2;
wBitsPerSample := 16;
cbSize := 0;
end ;
sans ca plante.
Décidémment chez Microsoft, ils feront jamais les choses simplements.
L'art de la complexité inutile semble etre cultivé chez eux.
Enfin bref probleme résolu : Merci White Hippo
|
|
lundi 7 janvier 2008 à 19:25:31 |
Re : Sélectionner une carte son
|
lundi 7 janvier 2008 à 20:29:10 |
Re : Sélectionner une carte son
|
jeudi 22 janvier 2009 à 17:55:31 |
Re : Sélectionner une carte son

Jardis
|
quelqu'un peut-il m'expliquer comment on se sert de ce code ? car je n'y arrive pas et j'ai besoin de pouvoir sélectionner une de mes deux cartes son.
merci d'avance
|
|
Cette discussion est classée dans : carte, sélectionner, wavef, hwo
Répondre à ce message
Sujets en rapport avec ce message
Aquerir les images en provenance de ma carte video [ par gooa ]
******************************************************************************************************************************************************
Select Dossier in OpenDialog [ par Bruto ]
Salut,j'aurais voulu pouvoir sélectionner un dossier via le composant OpenDialog mais il ne permet de sélectionner que des fichiers. Quel(s) option(s)
Sélectionner un paragraphe dans un TRichEdit [ par TabouJr ]
Bonjour !J'ai un petit souci : j'aimerais écrire une procédure qui sélectionne le paragraphe (retours chariot limitrophes exclus) contenant la positio
Commande pour obtenir le nom de sa carte graphique et son ? [ par orelien ]
Bonjour,J'aimerais connaître la commande pour obtenir le type de carte graphique et son de mon pc...Merci.Orelien.
Désactiver et réactive une carte réseau [ par Kortexx ]
Tout est dans le titre... Comment qu'on fait ça ? Précision, je suis en Delphi 7.Merci.
Sélectionner un bouton par defaut dans une message box [ par xklibur ]
Salut,J'affiche une message box dans mon application.Je test le resultat (sur quel bouton on a cliqué) et en fonction de ca, j'effectue les traitement
ListImage et boucle [ par idaho69 ]
petite explication de la situation :une image (jeu.bmp) contenant un jeu de cartes (54 cartes=52+le dos + face nue) le tout mis dans imagelist1L'on sa
DBGrid : selection automatique d'une ligne [ par trigoutte ]
Sous delphi7, est-il possible de sélectionner une ligne dans un DBGrid. Je n'arrive pas à trouver un truc du genre: dbgrid.dataset[5].select<i
Générer du son [ par TribalDolphin ]
Bonjour, à tous et toutes.J'aimerais génerer un son dans une appli (1750Hz).Windows.beep me dirait vous.C'est vrai !! c bien sur les PC portables car
recuperer resolution ecran [ par shouwy ]
Comme le dit le sujet je cherche a savoir comment je pourrai recuperer les differentes resolutions que ma carte graphique et mon ecran sont capable de
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|