powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Управление звуком. Ошибка открытия устройства waveOutOpen(). VS2008+Win 7
2 сообщений из 27, страница 2 из 2
Управление звуком. Ошибка открытия устройства waveOutOpen(). VS2008+Win 7
    #38795698
Фотография Вадимиус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бляха муха ! Мужики, выручайте, если можете....

Посмотрел и попытался вникнуть в книгу "программирование аппаратных средств в Windows изд.2" Описано очень подробно, аж до умопомрачения. Наверное у меня нормально вникнуть не получилось, потому что часа 3 долблюсь, а результатов нет !
Вот фрагмент моего кода.

Подскажите свои умным глазом, где бокопорю ?!!

Код: plaintext
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
// заголовки...
        HMIXEROBJ  hm;
	HMIXER     Mixer;
	MIXERLINE mxl;
	MIXERLINECONTROLS mxlc;
	MIXERCONTROL mxc;
	MIXERCAPS  mixerCaps;
	MIXERCONTROLDETAILS_UNSIGNED mxcdVolume;
	MIXERCONTROLDETAILS mxcd;

	UINT  * MxId;

//  где-то в InitDialog() ...
                CString dd;
                MMRESULT f1;
		UINT f0 = mixerGetNumDevs(); // получил 4
				
                // раньше в цикле от 0 до 4 нашел, что 0 и 1 открываются без ошибки, поэтому дальше тулю 1
		mixerOpen(&Mixer,1,NULL,0,MIXER_OBJECTF_HMIXER); 

		mxl.cbStruct = sizeof(MIXERLINE);
		mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
		mixerGetLineInfo((HMIXEROBJ)Mixer, &mxl, MIXER_GETLINEINFOF_COMPONENTTYPE|MIXER_OBJECTF_HMIXER);

		mxlc.cbStruct = sizeof(MIXERLINECONTROLS);
		mxlc.dwLineID = mxl.dwLineID;
		mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
		mxlc.cControls = 1;
		mxlc.cbmxctrl = sizeof(MIXERLINECONTROLS);
		mxlc.pamxctrl = &mxc;
		mixerGetLineControls((HMIXEROBJ)Mixer, &mxlc, MIXER_OBJECTF_HMIXER|MIXER_GETLINECONTROLSF_ONEBYTYPE);
				
		mxcd.cbStruct  = sizeof(MIXERCONTROLDETAILS);
		mxcd.cChannels = 1;
		mxcd.cMultipleItems = 0;
		mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
		mxcd.paDetails = &mxcdVolume;
		
                // код завершения
		f1 = mixerGetControlDetails((HMIXEROBJ)Mixer,&mxcd,MIXER_OBJECTF_MIXER|MIXER_GETCONTROLDETAILSF_VALUE);	

		DWORD Value1 = mxcdVolume.dwValue;  // по идее моя громкость, которую потом воткну = 0
		
			if(f1 != MMSYSERR_NOERROR ) 
			{
				dd.Format("Ошибка открытия устройства микширования звука код - %d, ",(ULONG)f1);
				MessageBox(dd);
			}
				dd.Format("Громкость - %d, ",(ULONG)Value1);
				MessageBox(dd);



Почти постоянно код ошибки mixerGetControlDetails = 1025 (Что за....!)
Громкость = 1 ( Не может быть )

Мозги уже плавятся ! Что я не так и не туда приткнул ? !!
...
Рейтинг: 0 / 0
Управление звуком. Ошибка открытия устройства waveOutOpen(). VS2008+Win 7
    #38838836
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот что не понял. Если под Win XP всё работает, а под Win 7 - нет, то ведь это на разных компах? Т.е. разные не только ОС, но и звуковые карты, и их драйвера? А с чего кто-то решил, что всё будет работать одинаково? У меня на домашнем компе в звуковой карте вообще перепутаны левый и правый каналы у линейного выхода (то, что все программы определяют как левый канал, подано на разъёме на контакт правого, и наоборот).
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Управление звуком. Ошибка открытия устройства waveOutOpen(). VS2008+Win 7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]