Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Как изменить громкость звука?   Найти похожие ветки 

 
Шишкин Илья   (2003-07-17 14:27) [0]

Сабж. Какое максимальное значение и минимальное?


 
AlexRush   (2003-07-17 15:48) [1]

См. waveOutGetVolume и waveOutSetVolume.

Пример из MSDN:

// Link with mmsystem.lib for 16-bit applications and
// link with winmm.lib for 32-bit applications.

#include <mmsystem.h>
#include <stdlib.h>

void ShowVolume(void); //Prototype the function early in the app

void ShowVolume(void)
{
// This is the function that can be added to the Generic Sample to
// illustrate the use of waveOutGetVolume() and waveOutSetVolume().

char buffer[40];
char printbuf[80];
UINT uRetVal, uNumDevs;
DWORD volume;
long lLeftVol, lRightVol;

WAVEOUTCAPS waveCaps;

// Make sure there is at least one
// wave output device to work with.
if (uNumDevs = waveOutGetNumDevs())
{
itoa((int)uNumDevs, buffer, 10);
wsprintf(printbuf, "Number of devices is %s\n", (LPSTR)buffer);
MessageBox(GetFocus(), printbuf, "NumDevs", MB_OK);
}

// This sample uses a hard-coded 0 as the device ID, but retail
// applications should loop on devices 0 through N-1, where N is the
// number of devices returned by waveOutGetNumDevs().
if (!waveOutGetDevCaps(0,(LPWAVEOUTCAPS)&waveCaps,
sizeof(WAVEOUTCAPS)))

{
// Verify the device supports volume changes
if(waveCaps.dwSupport & WAVECAPS_VOLUME)
{
// The low word is the left volume, the high word is the right.
// Set left channel: 2000h is one-eighth volume (8192 base ten).
// Set right channel: 4000h is quarter volume (16384 base ten).
uRetVal = waveOutSetVolume(0, (DWORD)0x40002000UL);

// Now get and display the volumes.
uRetVal = waveOutGetVolume(0, (LPDWORD)&volume);

lLeftVol = (long)LOWORD(volume);
lRightVol = (long)HIWORD(volume);

ltoa(lLeftVol, buffer, 10);
wsprintf(printbuf, "Left Volume is %s\n", (LPSTR)buffer);
MessageBox(GetFocus(), printbuf, "Left Volume", MB_OK);

ltoa(lRightVol, buffer, 10);
wsprintf(printbuf, "Right Volume is %s\n", (LPSTR)buffer);
MessageBox(GetFocus(), printbuf, "Right Volume", MB_OK);

// The low word is the left volume, the high word is the right.
// Set left channel: 8000h is half volume (32768 base ten).
// Set right channel: 4000h is quarter volume (16384 base ten).
uRetVal = waveOutSetVolume(0, (DWORD)0x40008000UL);

// Now get and display the volumes.
uRetVal = waveOutGetVolume(0, (LPDWORD)&volume);

lLeftVol = (long)LOWORD(volume);
lRightVol = (long)HIWORD(volume);

ltoa(lLeftVol, buffer, 10);
wsprintf(printbuf, "Left Volume is %s\n", (LPSTR)buffer);
MessageBox(GetFocus(), printbuf, "Left Volume", MB_OK);

ltoa(lRightVol, buffer, 10);
wsprintf(printbuf, "Right Volume is %s\n", (LPSTR)buffer);
MessageBox(GetFocus(), printbuf, "Right Volume", MB_OK);

}
}
}



 
AlexRush   (2003-07-17 15:49) [2]

И еще топик из MSDN:

How to Use Wave Audio Volume Control APIs
ID: Q139098


 
Clipper Chip   (2003-07-17 15:55) [3]

>Какое максимальное значение и минимальное?
Вообще-то FFFFFFFF и 0 соответственно (если это о чем-то говорит).
>Как изменить громкость звука?
загляни ко мне на сайт www.clippersoft.narod.ru раздел delphi
программа N2 шуточная программка jokeCC в модуле thread.pas
в конце найдешь. Там и получение громкости и ее изменение.
Удачи.


 
Е-Моё имя   (2003-07-17 16:00) [4]

вроде 0 - максимальное...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-58739
igp
2003-09-07 01:55
2003.09.18
Строка с мультифильтром


1-58764
Тих
2003-09-05 22:01
2003.09.18
Возвращение памяти в 95/98


1-58705
Andy BitOff
2003-09-08 15:44
2003.09.18
Цвет


1-58612
Sirakuz
2003-09-05 16:37
2003.09.18
POS С другой стороны


1-58740
ah
2003-09-07 09:24
2003.09.18
читаю файл для просмотра который пишется этой же программой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский