8 / 6 / 3
Регистрация: 08.07.2015
Сообщений: 54
|
|
1 | |
Событие окончания воспроизведения звука09.08.2015, 17:44. Показов 1482. Ответов 2
Метки нет (Все метки)
Добрый день!
Для воспроизведения звука использую WinAPI-функцию PlaySound, воспроизводящую wav-файлы. В некоторых ситуациях нужно знать, когда закончилось воспроизведение звука. snd_Sync не подходит, поскольку звук воспроизводится по событию, т.е., во-первых, Sync стопорит всё приложение (это и понятно), во-вторых, в это время могут приходить события, требующие того же звука. При синхронном воспроизведении накапливается целая очередь и потом получается ж#па. Каким образом узнать, когда закончилось воспроизведение звука? Возможно, приходит какое-то wm-сообщение? Пока придумал только такой костыль: воспроизводить звук с snd_Async и стартовать таймер, раз, например, в 100 мсек вызывающий PlaySound(,,snd_NoStop). Если играет звук, функция должна вернуть False - ресурс воспроизведения звука занят. Но костыли городить не хочется... Добавлю: были мысли стартовать звук синхронно, но в отдельном потоке TThread. Но я ранее уже пытался использовать потоки, при их работе начинают отваливаться другие компоненты (глюк Лазаруса, коих я уже переловил тьму), в результате от потоков отказался.
0
|
09.08.2015, 17:44 | |
Ответы с готовыми решениями:
2
mciSendString отловить момент окончания воспроизведения Как закрыть wmplayer после окончания воспроизведения Воспроизведения звука мгновенно Ошибка воспроизведения звука |
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 716
|
|
10.08.2015, 10:16 | 3 |
Активно работаю в Лазарусе с потоками, правда пользуюсь функциями BeginThread() и WaitForSingleObject().
Глюков никаких пока не замечал.
0
|
10.08.2015, 10:16 | |
10.08.2015, 10:16 | |
Помогаю со студенческими работами здесь
3
Кроссплатформенная библиотека воспроизведения звука Компонент для воспроизведения звука Ошибка при воспроизведения звука Ошибка при попытке воспроизведения звука Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |