![]() |
Звук в Visual C++
Хай, all. Кто может подскажет как организовать одновременное воспроизведение двух звуковых файлов? Говорят надо как-то частоту складывать ... но как? Суть такая: пишется что-то типа "пианино". надо сделать так чтобы можно ставить аккорды. Заранеее thanks :rolleyes:
|
Цитата:
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); |
Эти три функции воспроизводят звук не одновременно, а последовательно ... т.е сначала один а при следующем вызове, прерывая предидущий, воспроизводиться следующий. Или в данном примере проигрывается только последний файл ... или я что-то не догоняю? По крайней мере у меня так.
|
Если сэмплы не большие по объёму, то
читаешь заголовок и, на основании инфы в нем, заполняешь структурку WAVEFORMATEX инициализируешь DirectSound, с помощью DirectSoundCreate и создаёшь DirectSound буфер, с помощью CreateSoundBuffer или, если не умеешь читать заголовки, то с помошью CreateSoundBufferFromFile для каждого следующего звукового файла создаёшь вторичный буфер... ...звуки будут проигрываться как им укажешь через IDirectSoundBuffer::Play для каждого из созданных буферов, а микшироваться они будут автоматически! :) |
А что если в разных потоках каждый PlaySound запустить?
|
Цитата:
Цитата:
|
Цитата:
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. |
Я лишь внёс предложение, гимора совсем не много...
...если б человек заинтересовался, то мог бы обратиться за подробностями! |
используй библиотеки: fmod или bass. разберешся, пригодится :)
|
| Часовой пояс GMT +4, время: 16:22. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.