imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 05.05.2004, 14:38     # 1
galeon
Guest
 
Сообщения: n/a

Звук в Visual C++

Хай, all. Кто может подскажет как организовать одновременное воспроизведение двух звуковых файлов? Говорят надо как-то частоту складывать ... но как? Суть такая: пишется что-то типа "пианино". надо сделать так чтобы можно ставить аккорды. Заранеее thanks
 
Старый 05.05.2004, 17:35     # 2
gandalf_g
Junior Member
 
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62

gandalf_g Путь к славе только начался
Цитата:
Platform SDK: Windows Multimedia

BOOL PlaySound(
LPCSTR pszSound,
HMODULE hmod,
DWORD fdwSound
);
пример:
PlaySound("1.wav", NULL, SND_FILENAME | SND_ASYNC);
PlaySound("2.wav", NULL, SND_FILENAME | SND_ASYNC);
PlaySound("3.wav", NULL, SND_FILENAME | SND_ASYNC);

чтобы остановить:
PlaySound(NULL, NULL, 0);
__________________
не учите людей думать, они вам этого не простят...
gandalf_g вне форума  
Старый 05.05.2004, 21:24     # 3
galeon
Guest
 
Сообщения: n/a

Эти три функции воспроизводят звук не одновременно, а последовательно ... т.е сначала один а при следующем вызове, прерывая предидущий, воспроизводиться следующий. Или в данном примере проигрывается только последний файл ... или я что-то не догоняю? По крайней мере у меня так.
 
Старый 08.05.2004, 17:14     # 4
mosh
Mosherator
 
Аватар для mosh
 
Регистрация: 29.10.2002
Адрес: Moshcow
Сообщения: 1 201

mosh Бог с наворотамиmosh Бог с наворотами
mosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотами
Если сэмплы не большие по объёму, то
читаешь заголовок и, на основании инфы в нем, заполняешь
структурку WAVEFORMATEX инициализируешь DirectSound, с помощью DirectSoundCreate и создаёшь DirectSound буфер, с помощью
CreateSoundBuffer или, если не умеешь читать заголовки,
то с помошью CreateSoundBufferFromFile
для каждого следующего звукового файла создаёшь вторичный буфер...
...звуки будут проигрываться как им укажешь через IDirectSoundBuffer::Play для каждого из созданных буферов,
а микшироваться они будут автоматически!
mosh вне форума  
Старый 11.05.2004, 17:46     # 5
blood_hound
Guest
 
Сообщения: n/a

А что если в разных потоках каждый PlaySound запустить?
 
Старый 11.05.2004, 18:52     # 6
gandalf_g
Junior Member
 
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62

gandalf_g Путь к славе только начался
Цитата:
Сообщение от galeon
Эти три функции воспроизводят звук не одновременно, а последовательно ... т.е сначала один а при следующем вызове, прерывая предидущий, воспроизводиться следующий. Или в данном примере проигрывается только последний файл ... или я что-то не догоняю? По крайней мере у меня так.
как так, стоит же флаг SND_ASYNC, читаем MSDN
Цитата:
SND_ASYNC The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.
__________________
не учите людей думать, они вам этого не простят...
gandalf_g вне форума  
Старый 12.05.2004, 23:57     # 7
Mind
Junior Member
 
Аватар для Mind
 
Регистрация: 05.02.2004
Адрес: Indianapolis
Сообщения: 64

Mind Путь к славе только начался
Цитата:
Сообщение от mosh
Если сэмплы не большие по объёму, то
читаешь заголовок и, на основании инфы в нем, заполняешь
структурку WAVEFORMATEX инициализируешь DirectSound, с помощью DirectSoundCreate и создаёшь DirectSound буфер, с помощью
CreateSoundBuffer или, если не умеешь читать заголовки,
то с помошью CreateSoundBufferFromFile
для каждого следующего звукового файла создаёшь вторичный буфер...
...звуки будут проигрываться как им укажешь через IDirectSoundBuffer::Play для каждого из созданных буферов,
а микшироваться они будут автоматически!
Ti zabil upomyanut pro podkluchenie lib'ov,sozdanie interface'a dlya DX i t.d.
Esli chelovek nikogda ne ispolzoval etu travu, to emu bez spez. litri ne oboitis.
Voobschem mnogo gimora s etim DirectX dlya nooba. Da i ispolzuetsya on tolko v pleerah i igrah. WinApi samoe to dlya wav'ov.
Mind вне форума  
Старый 14.05.2004, 18:12     # 8
mosh
Mosherator
 
Аватар для mosh
 
Регистрация: 29.10.2002
Адрес: Moshcow
Сообщения: 1 201

mosh Бог с наворотамиmosh Бог с наворотами
mosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотамиmosh Бог с наворотами
Я лишь внёс предложение, гимора совсем не много...
...если б человек заинтересовался, то мог бы обратиться за
подробностями!
mosh вне форума  
Старый 19.05.2004, 19:09     # 9
edbond
Newbie
 
Регистрация: 05.04.2004
Сообщения: 24

edbond Нуль без палочки
используй библиотеки: fmod или bass. разберешся, пригодится
__________________
edbond вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:22.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.