Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| carte son | |
| | Auteur | Message |
---|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: carte son Mer 6 Déc 2017 - 14:39 | |
| bjr
comment je peut faire pour obtenir l'handle de ma carte son ou le non du périphérique avec l'aide d'une dll? mrc | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: carte son Mer 6 Déc 2017 - 16:25 | |
| Je ne crois pas qu’une carte son possède un handle. Mais peut-être que je me trompe. Par contre, je sais comment savoir si une carte son est présente ou non. - Code:
-
dim carte%
dll_on "winmm" carte% = dll_call0("waveOutGetNumDevs") if carte% > 0 message "Carte son présente" else message "Pas de carte son !" end_if
| |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: carte son Mer 6 Déc 2017 - 17:58 | |
| bsr papydall pour ça j'ai su le faire avec Winmm.dll Dll_On "Winmm.dll" ' Identifi si il y a une carte son Res%=Dll_Call0("waveOutGetNumDevs") mais c'est pour identifier le driver de la carte je join les apis de winmm.dll - Code:
-
API("winmm.dll", "auxGetDevCapsA" , uDeviceID, &lpCaps, uSize) API("winmm.dll", "auxGetNumDevs" ) API("winmm.dll", "auxGetVolume" , uDeviceID, &lpdwVolume) API("winmm.dll", "auxOutMessage" , uDeviceID, msg, dw1, dw2) API("winmm.dll", "auxSetVolume" , uDeviceID, dwVolume) API("winmm.dll", "CloseDriver" , hDriver, &lparam1, &lparam2) API("winmm.dll", "DefDriverProc" , dwDriverIdentifier, hdrvr, uMsg, &lparam1, &lparam2) API("winmm.dll", "DrvGetModuleHandle" , hDriver) API("winmm.dll", "GetDriverModuleHandle" , hDriver) API("winmm.dll", "joyGetDevCapsA" , id, &lpCaps, uSize) API("winmm.dll", "joyGetNumDev" ) API("winmm.dll", "joyGetPos" , uJoyID, &pji) API("winmm.dll", "joyGetPosEx" , uJoyID, &pji) API("winmm.dll", "joyGetThreshold" , id, &lpuThreshold) API("winmm.dll", "joyReleaseCapture" , id) API("winmm.dll", "joySetCapture" , hwnd, uID, uPeriod, bChanged) API("winmm.dll", "joySetThreshold" , id, uThreshold) API("winmm.dll", "mciExecute" , &lpstrCommand) API("winmm.dll", "mciGetCreatorTask" , wDeviceID) API("winmm.dll", "mciGetDeviceIDA" , &lpstrName) API("winmm.dll", "mciGetDeviceIDFromElementIDA" , dwElementID, &lpstrType) API("winmm.dll", "mciGetErrorStringA" , dwError, &lpstrBuffer, uLength) API("winmm.dll", "mciGetYieldProc" , mciId, &pdwYieldData) API("winmm.dll", "mciSendCommandA" , wDeviceID, uMessage, dwParam1, dwParam2) API("winmm.dll", "mciSendStringA" , &lpstrCommand, &lpstrReturnString, uReturnLength, hwndCallback) API("winmm.dll", "mciSetYieldProc" , mciId, fpYieldProc, dwYieldData) API("winmm.dll", "midiConnect" , hmi, hmo, &pReserved) API("winmm.dll", "midiDisconnect" , hmi, hmo, &pReserved) API("winmm.dll", "midiInAddBuffer" , hMidiIn, &lpMidiInHdr, uSize) API("winmm.dll", "midiInClose" , hMidiIn) API("winmm.dll", "midiInGetDevCapsA" , uDeviceID, &lpCaps, uSize) API("winmm.dll", "midiInGetErrorTextA" , err, &lpText, uSize) API("winmm.dll", "midiInGetID" , hMidiIn, &lpuDeviceID) API("winmm.dll", "midiInGetNumDevs" ) API("winmm.dll", "midiInMessage" , hMidiIn, msg, dw1, dw2) API("winmm.dll", "midiInOpen" , &lphMidiIn, uDeviceID, dwCallback, dwInstance, dwFlags) API("winmm.dll", "midiInPrepareHeader" , hMidiIn, &lpMidiInHdr, uSize) API("winmm.dll", "midiInReset" , hMidiIn) API("winmm.dll", "midiInStart" , hMidiIn) API("winmm.dll", "midiInStop" , hMidiIn) API("winmm.dll", "midiInUnprepareHeader" , hMidiIn, &lpMidiInHdr, uSize) API("winmm.dll", "midiOutCacheDrumPatches" , hMidiOut, uPatch, &lpKeyArray, uFlags) API("winmm.dll", "midiOutCachePatches" , hMidiOut, uBank, &lpPatchArray, uFlags) API("winmm.dll", "midiOutClose" , hMidiOut) API("winmm.dll", "midiOutGetDevCapsA" , uDeviceID, &lpCaps, uSize) API("winmm.dll", "midiOutGetErrorTextA" , err, &lpText, uSize) API("winmm.dll", "midiOutGetID" , hMidiOut, &lpuDeviceID) API("winmm.dll", "midiOutGetNumDevs" ) API("winmm.dll", "midiOutGetVolume" , uDeviceID, &lpdwVolume) API("winmm.dll", "midiOutLongMsg" , hMidiOut, &lpMidiOutHdr, uSize) API("winmm.dll", "midiOutMessage" , hMidiOut, msg, dw1, dw2) API("winmm.dll", "midiOutOpen" , &lphMidiOut, uDeviceID, dwCallback, dwInstance, dwFlags) API("winmm.dll", "midiOutPrepareHeader" , hMidiOut, &lpMidiOutHdr, uSize) API("winmm.dll", "midiOutReset" , hMidiOut) API("winmm.dll", "midiOutSetVolume" , uDeviceID, dwVolume) API("winmm.dll", "midiOutShortMsg" , hMidiOut, dwMsg) API("winmm.dll", "midiOutUnprepareHeader" , hMidiOut, &lpMidiOutHdr, uSize) API("winmm.dll", "midiStreamClose" , hms) API("winmm.dll", "midiStreamOpen" , &phms, &puDeviceID, cMidi, dwCallback, dwInstance, fdwOpen) API("winmm.dll", "midiStreamOut" , hms, &pmh, cbmh) API("winmm.dll", "midiStreamPause" , hms) API("winmm.dll", "midiStreamPosition" , hms, &lpmmt, cbmmt) API("winmm.dll", "midiStreamProperty" , hms, &lppropdata, dwProperty) API("winmm.dll", "midiStreamRestart" , hms) API("winmm.dll", "midiStreamStop" , hms) API("winmm.dll", "mixerClose" , hmx) API("winmm.dll", "mixerGetControlDetailsA" , hmxobj, &pmxcd, fdwDetails) API("winmm.dll", "mixerGetDevCapsA" , uMxId, pmxcaps, cbmxcaps) API("winmm.dll", "mixerGetID" , hmxobj, &pumxID, fdwId) API("winmm.dll", "mixerGetLineControlsA" , hmxobj, &pmxlc, fdwControls) API("winmm.dll", "mixerGetLineInfoA" , hmxobj, &pmxl, fdwInfo) API("winmm.dll", "mixerGetNumDevs" ) API("winmm.dll", "mixerMessage" , hmx, uMsg, dwParam1, dwParam2) API("winmm.dll", "mixerOpen" , &phmx, uMxId, dwCallback, dwInstance, fdwOpen) API("winmm.dll", "mixerSetControlDetails" , hmxobj, &pmxcd, fdwDetails) API("winmm.dll", "mmioAdvance" , hmmio, &lpmmioinfo, uFlags) API("winmm.dll", "mmioAscend" , hmmio, &lpck, uFlags) API("winmm.dll", "mmioClose" , hmmio, uFlags) API("winmm.dll", "mmioCreateChunk" , hmmio, &lpck, uFlags) API("winmm.dll", "mmioDescend" , hmmio, &lpck, &lpckParent, uFlags) API("winmm.dll", "mmioFlush" , hmmio, uFlags) API("winmm.dll", "mmioGetInfo" , hmmio, &lpmmioinfo, uFlags) API("winmm.dll", "mmioInstallIOProcA" , &lfccIOProc * 4, pIOProc, dwFlags) API("winmm.dll", "mmioOpenA" , &lpszFileName, &lpmmioinfo, dwOpenFlags) API("winmm.dll", "mmioRead" , hmmio, &lppch, cch) API("winmm.dll", "mmioRenameA" , &lpszFileName, &lpSzNewFileName, &lpmmioinfo, dwRenameFlags) API("winmm.dll", "mmioSeek" , hmmio, &lplOffset, iOrigin) API("winmm.dll", "mmioSendMessage" , hmmio, uMsg, &lparam1, &lparam2) API("winmm.dll", "mmioSetBuffer" , hmmio, &lppchBuffer, cchBuffer, uFlags) API("winmm.dll", "mmioSetInfo" , hmmio, &lpmmioinfo, uFlags) API("winmm.dll", "mmioStringToFOURCCA" , &lpsz, uFlags) API("winmm.dll", "mmioWrite" , hmmio, &lppch, cch) API("winmm.dll", "mmsystemGetVersion" ) API("winmm.dll", "OpenDriver" , &lpszDriverName, &lpszSectionName, &lparam2) API("winmm.dll", "OutputDebugStr" , &lpszOutputString) API("winmm.dll", "PlaySoundA" , &lpszName, hModule, dwFlags) API("winmm.dll", "SendDriverMessage" , hDriver, message, &lparam1, &lparam2) API("winmm.dll", "sndPlaySoundA" , &lpszSoundName, uFlags) API("winmm.dll", "timeBeginPeriod" , uPeriod) API("winmm.dll", "timeEndPeriod" , uPeriod) API("winmm.dll", "timeGetDevCaps" , &lpTimeCaps, uSize) API("winmm.dll", "timeGetSystemTime" , &lpTime, uSize) API("winmm.dll", "timeGetTime" ) API("winmm.dll", "timeKillEvent" , uID) API("winmm.dll", "timeSetEvent" , uDelay, uResolution, &lpFunction, dwUser, uFlags) API("winmm.dll", "waveInAddBuffer" , hWaveIn, &lpWaveInHdr, uSize) API("winmm.dll", "waveInClose" , hWaveIn) API("winmm.dll", "waveInGetDevCapsA" , uDeviceID, &lpCaps, uSize) API("winmm.dll", "waveInGetErrorTextA" , err, &lpText, uSize) API("winmm.dll", "waveInGetID" , hWaveIn, &lpuDeviceID) API("winmm.dll", "waveInGetNumDevs" ) API("winmm.dll", "waveInGetPosition" , hWaveIn, &lpInfo, uSize) API("winmm.dll", "waveInMessage" , hWaveIn, msg, dw1, dw2) API("winmm.dll", "waveInOpen" , &lphWaveIn, uDeviceID, &lpFormat, dwCallback, dwInstance, dwFlags) API("winmm.dll", "waveInPrepareHeader" , hWaveIn, &lpWaveInHdr, uSize) API("winmm.dll", "waveInReset" , hWaveIn) API("winmm.dll", "waveInStart" , hWaveIn) API("winmm.dll", "waveInStop" , hWaveIn) API("winmm.dll", "waveInUnprepareHeader" , hWaveIn, &lpWaveInHdr, uSize) API("winmm.dll", "waveOutBreakLoop" , hWaveOut) API("winmm.dll", "waveOutClose" , hWaveOut) API("winmm.dll", "waveOutGetDevCapsA" , uDeviceID, &lpCaps, uSize) API("winmm.dll", "waveOutGetErrorTextA" , err, &lpText, uSize) API("winmm.dll", "waveOutGetID" , hWaveOut, &lpuDeviceID) API("winmm.dll", "waveOutGetNumDevs" ) API("winmm.dll", "waveOutGetPitch" , hWaveOut, &lpdwPitch) API("winmm.dll", "waveOutGetPlaybackRate" , hWaveOut, &lpdwRate) API("winmm.dll", "waveOutGetPosition" , hWaveOut, &lpInfo, uSize) API("winmm.dll", "waveOutGetVolume" , uDeviceID, &lpdwVolume) API("winmm.dll", "waveOutMessage" , hWaveOut, msg, dw1, dw2) API("winmm.dll", "waveOutOpen" , &lphWaveOut, uDeviceID, &lpFormat, dwCallback, dwInstance, dwFlags) API("winmm.dll", "waveOutPause" , hWaveOut) API("winmm.dll", "waveOutPrepareHeader" , hWaveOut, &lpWaveOutHdr, uSize) API("winmm.dll", "waveOutReset" , hWaveOut) API("winmm.dll", "waveOutRestart" , hWaveOut) API("winmm.dll", "waveOutSetPitch" , hWaveOut, dwPitch) API("winmm.dll", "waveOutSetPlaybackRate" , hWaveOut, dwRate) API("winmm.dll", "waveOutSetVolume" , uDeviceID, dwVolume) API("winmm.dll", "waveOutUnprepareHeader" , hWaveOut, &lpWaveOutHdr, uSize) API("winmm.dll", "waveOutWrite" , hWaveOut, &lpWaveOutHdr, uSize)
je cherche un moyen a baisser ou a augmenter le son de la carte voir celui du programme actif celui qui ce joint au mélangeur du volume | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: carte son Mer 6 Déc 2017 - 20:45 | |
| Voici un code fonctionnel qui montre comment faire pour modifier le volume (augmenter ou diminuer). Modifier le nom et le chemin de votre fichier en ligne 32 - Code:
-
rem ============================================================================ rem Augmenter / diminuer le volume son rem ============================================================================ rem Cliquer sur les boutons pour augmenter / diminuer le volume du côté gauche rem ou du côté droit rem ============================================================================
Init() Form_Load()
end rem ============================================================================ SUB Init() label clic ' Déclaration des constantes dim SND_ASYNC : SND_ASYNC = hex("1") dim SND_NODEFAULT : SND_NODEFAULT = hex("2") dim SND_NOWAIT : SND_NOWAIT = hex("2000") ' Variable globale du volume dim VolG% dim VolD% dim volumeG% ' Variable globale bidon pour les retour d'API dim ret% ' Les boutons button 10 : top 10,050 : left 10,050 : font_bold 10 : width 10,150 : caption 10,"Volume Gauche +" : on_click 10,clic button 20 : top 20,100 : left 20,050 : font_bold 20 : width 20,150 : caption 20,"Volume Gauche -" : on_click 20,clic button 30 : top 30,050 : left 30,250 : font_bold 30 : width 30,150 : caption 30,"Volume Droit +" : on_click 30,clic button 40 : top 40,100 : left 40,250 : font_bold 40 : width 40,150 : caption 40,"Volume Droit -" : on_click 40,clic button 50 : top 50,150 : left 50,200 : font_bold 50 : caption 50,"Arrêter" : on_click 50,clic ' Jouer un fichier .mp3 sound 99 : file_load 99,"F:\MP3\Test\test.mp3" : ' <--- Adapter le chemin play 99 dll_on "winmm" END_SUB rem ============================================================================ Clic: Select number_click case 10 : PlusG_Click() case 20 : MoinsG_Click() case 30 : PlusD_Click() case 40 : MoinsD_Click() case 50 : terminate end_select return rem ============================================================================ SUB Form_Load() ' Récupération du volume courant ret% = dll_call2("waveOutGetVolume",0, volumeG%) VolG% = bin_and(volumeG%, hex("FFFF")) VolD% = bin_and(bin_and(volumeG%,hex("FFFF0000") / hex("10000")) , hex("FFFF")) END_SUB rem ============================================================================ SUB PlusG_Click() ' Augmente le volume du côté gauche VolG% = VolG% + hex("1000") If VolG% > hex("FFFF") Then VolG% = hex("FFFF") ret% = dll_call2("waveOutSetVolume",0, VolD% + VolG%) END_SUB rem ============================================================================ SUB MoinsG_Click() ' Diminue le volume du côté gauche VolG% = VolG% - hex("1000") If VolG% < 0 Then VolG% = 0 ret% = dll_call2("waveOutSetVolume",0, VolD% + VolG%) END_SUB rem ============================================================================ SUB PlusD_Click() ' Augmente le volume du côté droit VolD% = VolD% + hex("1000") If VolD% > hex("FFFF") Then VolD% = hex("FFFF") ret% = dll_call2("waveOutSetVolume",0, VolD% + VolG%) END_SUB rem ============================================================================ SUB MoinsD_Click() ' Diminue le volume du côté droit VolD% = VolD% - hex("1000") If VolD% < 0 Then VolD% = 0 ret% = dll_call2("waveOutSetVolume",0,VolD% + VolG%) END_SUB rem ============================================================================
| |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: carte son Mer 6 Déc 2017 - 21:02 | |
| AH merci papydall t un chef depuis le temps que je cherchais question! alors faut il le Handle de la carte?? merci encore A partir de là je devrais pouvoir finir mon programme | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: bizare Jeu 7 Déc 2017 - 16:01 | |
| bjr papydall c'est bizarre le coté droit des enceinte est muette ! il n'y a que le côté gauche qui est utilisé sur source j'ai remarqué que pour les 2 canal ils emploient coté Gauche FFFF0000 coté Droit 0000FFFF et puis a ton code j'ai utilisé un track_bar à la place de boutton - Code:
-
rem ============================================================================ rem Augmenter / diminuer le volume son rem ============================================================================ rem Cliquer sur les boutons pour augmenter / diminuer le volume du côté gauche rem ou du côté droit (Utilisation d'un track_bar à la place rem ============================================================================ Label Clic Init() Form_Load()
end rem ============================================================================ SUB Init() ' Déclaration des constantes ' Variable globale du volume dim Vol% dim volume% ' Variable globale bidon pour les retour d'API dim ret% ' Les boutons track_bar 1 min 1,0:max 1,65535 On_Change 1,Clic ' Jouer un fichier .mp3 sound 99 : file_load 99,"D:\Disque Album\Divers\Coldplay - Adventure Of A Lifetime .mp3" : ' <--- Adapter le chemin play 99 dll_on "winmm" END_SUB rem ============================================================================ Clic: Vol%=position(1) If Vol%<0 Then Vol%=0 : If Vol%>65535 Then Vol%=65535 ret% = dll_call2("waveOutSetVolume",0,Vol%) return rem ============================================================================ SUB Form_Load() ' Récupération du volume courant ret% = dll_call2("waveOutGetVolume",0, volume%) Vol% = bin_and(volume%, hex("FFFF")) Position 1,volume% END_SUB
dans le code je n'ai déclaré qu'un seule élément croyant que je pouvais utiliser les 2 canal merci encore | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: carte son Ven 8 Déc 2017 - 0:37 | |
| Voici les modifications à apporter: - Code:
-
' / GESTIONS DU VOLUME / *********************************************************** dim TotalVol% NiveauSon: GaucheVol%=position(5) FonctionWinmm$="waveOutSetVolume," If GaucheVol%<0 Then GaucheVol%=0 If GaucheVol%>65535 Then GaucheVol%=65535
Res% = dll_call2("TargetDLL",hnd_dll%,adr(FonctionWinmm$)) Res% = dll_call2("CallDLL2",0,GaucheVol%) DroitVol%=position(5) If DroitVol%<0 Then DroitVol%=0 If DroitVol%>65535 Then DroitVol%=65535
' Il faut respecter le format de codage: ' RRRRLLLL en hexa, pas une simple addition ! TotalVol% = bin_or(GaucheVol%,DroitVol%*65536) ' la ligne suivante est unitile ici, car il s'agit le ma même fonction ! ' Res% = dll_call2("TargetDLL",hnd_dll%,adr(FonctionWinmm$)) ' il faut passer le second paramètre sous forme d'adresse, pas valeur ! Res% = dll_call2("CallDLL2",0,adr(TotalVol%)) Return
Sub NiveauSon() ' RECUPERE LE NIVEAU ACTUEL DU SON FonctionWinmm$="waveOutGetVolume Res% = dll_call2("TargetDLL",hnd_dll%,adr(FonctionWinmm$)) Res% = dll_call2("CallDLL2",0,Volume%) ' <--erreur de violation ici GaucheVol% = bin_and(volume%,hex("0000FFFF")) DroitVol% = bin_and(volume%,hex("FFFF0000"))/65536 End_Sub
************************************************************ J'ai mis des commentaires pour expliquer. | |
| | | Contenu sponsorisé
| Sujet: Re: carte son | |
| |
| | | | carte son | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |