C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ЗВУКИ, 2 вопроса по звукам
Booster
  Отправлено: 25.08.2005, 09:46


Ученик-кочегар

Группа: Участник
Сообщений: 29



1. При вызове PlaySound(...) из файла прога сначала подвисает. Вопрос: Как занести звуковой файл в память или как воспроизвести звук без задержек?
2. Вопрос: Как одновременно воспроизвести несколько wav файлов в одной проге?
GIZMO
Отправлено: 26.08.2005, 09:44


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Booster @ 25/08/2005, 09:46)
1. При вызове PlaySound(...) из файла прога сначала подвисает. Вопрос: Как занести звуковой файл в память или как воспроизвести звук без задержек?
2. Вопрос: Как одновременно воспроизвести несколько wav файлов в одной проге?

1. PlaySound( , , SND_ASYNC)?
Booster
Отправлено: 26.08.2005, 22:20


Ученик-кочегар

Группа: Участник
Сообщений: 29



При Async всёравно возникает задержка связаная с подгрузкой wav файла.
Gedeon
Отправлено: 29.08.2005, 09:06


Ветеран

Группа: Модератор
Сообщений: 1742



А что там такое что тормозит?
Файл большой или может чем-то кодированный, можете попробовать воспроизводить звук с помощью
waveOutWrite,
при работе с этой ф-цией можно заюзать
QUOTE

waveOutPrepareHeader function prepares a waveform-audio data block for playback
она готовит буффер для воспроизведения.

Читать мсдн про функции
waveOutGetDevCaps, waveOutOpen, waveOutPrepareHeader, waveOutWrite, waveOutReset, waveOutUnprepareHeader, WaveOutClose.
Booster
Отправлено: 31.08.2005, 08:55


Ученик-кочегар

Группа: Участник
Сообщений: 29



Тормохит именно во время подгрузки. Но главная проблема не в том. Почему не можно воспроизвести одновременно несколько звуков?
Sl@Sh
Отправлено: 31.08.2005, 12:48


Мастер участка

Группа: Участник
Сообщений: 383



Hi B!
Во-первых возможно с помощью PlaySound сразу несколько воспроизвести не удастся. Это вам не DirectSound.
Во-вторых как вы пробуете воспроизвести одновременно ? Попробуйте (если уже не попробовали) использовать потоки.

P.S.: Флаг SND_ASYNC позволяет асинхронно выдавать звук, но на загрузку звуку тоже нужно время. Тут уж от его размера всё и зависит. Если файл сильно большой, советую в мп3 пережать и с омощью MCI воспроизвести (кажется Gedeon MCI-функцию и предложил)

Вернуться в Вопросы программирования в C++Builder