Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод звука затормаживает вывод текста, PlaySound 
V
    Опции темы
Gunslinger
Дата 5.3.2009, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Привет!
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Edit1->Text="dgdgdf";
    PlaySound("C:\\15.wav", NULL,SND_FILENAME);
    PlaySound("C:\\16.wav", NULL,SND_FILENAME);
    PlaySound("C:\\17.wav", NULL,SND_FILENAME);

}

секунд на 5-6. Без PlaySound - выводит сразу. Как быть?
PM MAIL   Вверх
ksili
Дата 5.3.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



и в дебаге и в релизе одинаково?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Dmi3ev
Дата 5.3.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



вот так надо:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Edit1->Text="dgdgdf";
    Form1->Refresh();
    PlaySound("C:\\15.wav", NULL,SND_FILENAME);
    PlaySound("C:\\16.wav", NULL,SND_FILENAME);
    PlaySound("C:\\17.wav", NULL,SND_FILENAME);
}



--------------------

PM MAIL   Вверх
Gunslinger
Дата 5.3.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(ksili @  5.3.2009,  09:42 Найти цитируемый пост)
и в дебаге и в релизе одинаково?

одинаково.


Цитата(Dmi3ev @  5.3.2009,  10:22 Найти цитируемый пост)
Код
Form1->Refresh();

работает, спасибо.
PM MAIL   Вверх
Dmi3ev
Дата 5.3.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

работает, спасибо. 

пожалуйста!


--------------------

PM MAIL   Вверх
Gunslinger
Дата 5.3.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{

             PlaySound("C:\\15.wav", NULL,SND_FILENAME);
             PlaySound("C:\\16.wav", NULL,SND_FILENAME);
             PlaySound("C:\\17.wav", NULL,SND_FILENAME);
             //Sleep(2000);
         };
};


PM MAIL   Вверх
Dmi3ev
Дата 5.3.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



та же шняга, ты не понял чтоль, в чем прикол?

Добавлено через 45 секунд
но решение будет другое



--------------------

PM MAIL   Вверх
xvr
Дата 5.3.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Добавь SND_ASYNC к SND_FILENAME. Вот только подряд несколько PlaySound'ов тогда не пройдут  smile 
Второй вариант - запусти TThread и выполняй PlaySound в нем
PM MAIL   Вверх
xvr
Дата 5.3.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Кстати, он у тебя не только вывод текста затормозит, но и вообще весь GUI остановит, пока PlaySound не доиграет. Используй асинхронную версию или отдельный TThread
PM MAIL   Вверх
Gunslinger
Дата 5.3.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(Dmi3ev @  5.3.2009,  12:52 Найти цитируемый пост)
та же шняга, ты не понял чтоль, в чем прикол?

неа. только мысль про потоки сидела.

Цитата(xvr @  5.3.2009,  12:54 Найти цитируемый пост)
Второй вариант - запусти TThread и выполняй PlaySound в нем

чуть тебя обогнал с вопросом smile Сейчас буду хелп смотреть, как с ним работать.
PM MAIL   Вверх
xvr
Дата 5.3.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Gunslinger @ 5.3.2009,  13:00)
Цитата(xvr @  5.3.2009,  12:54 Найти цитируемый пост)
Второй вариант - запусти TThread и выполняй PlaySound в нем

чуть тебя обогнал с вопросом smile Сейчас буду хелп смотреть, как с ним работать.

Попробуй сначала SND_ASYNC - возможно поток и не понадобится  smile 
PM MAIL   Вверх
Gunslinger
Дата 5.3.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(xvr @  5.3.2009,  13:19 Найти цитируемый пост)
Попробуй сначала SND_ASYNC - возможно поток и не понадобится

при
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
             PlaySound("C:\\15.wav", NULL,SND_FILENAME|SND_ASYNC);
             PlaySound("C:\\16.wav", NULL,SND_FILENAME|SND_ASYNC);
             PlaySound("C:\\17.wav", NULL,SND_FILENAME|SND_ASYNC);
             //Sleep(2000);
         };
};

выводит последний файл, хотя закрыть программу можно уже в любой момент. Если в первом PlaySound убрать - выводит первый и последний.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.