Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2012, 17:49   #1
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
Смущение При остановке воспроизведения музыки программа зависает (Delphi7)

сделал не большую программку, чисто для души, в которой на форме о авторе была бы кнопка которая бы воспроизводила какую-нибудь музычку и меняла свой Caption, после чего этой же кнопкой остановить воспроизведение.
Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
  If Button1.Caption='Play'
    then
      begin
        Button1.Caption:='Stop';
        PlaySound('1.wav', 0, SND_ASYNC or SND_LOOP);
      end
    else
      begin
        Button1.Caption:='Play';
        PlaySound('1.wav', 0, SND_PURGE);
        label6.Caption:=svtxt;
      end;
  label6.Visible:= not label6.Visible;
end;
Проблема вот в чём... У меня на компьютере работает всё превосходна, а вот на остальных при остановке воспроизведения программа виснет, а музыка продолжает играть.

Если что вот прога http://narod.ru/disk/41129848001/%D0...D0%BE.rar.html
вес ~30мб по большей части из-за музыки.
Ш.Р.Ю.-программист! йопта!!!

Последний раз редактировалось munthrekosh; 21.02.2012 в 18:44. Причина: вспомнил про правило что в заголовке должен указываться язык
munthrekosh вне форума Ответить с цитированием
Старый 21.02.2012, 19:17   #2
GoodDA
фрилансер
Форумчанин
 
Аватар для GoodDA
 
Регистрация: 18.07.2008
Сообщений: 107
По умолчанию

немного не в тему- может проще использовать TMediaPlayer ?
GoodDA вне форума Ответить с цитированием
Старый 21.02.2012, 19:23   #3
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от GoodDA Посмотреть сообщение
немного не в тему- может проще использовать TMediaPlayer ?
В тему. В том то и беда, что я не хочу использовать TMediaPlayer. Всё что мне надо это только вот эта одна кнопка...

Вот из-за чего может такая проблема вылезать
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 21.02.2012, 20:21   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

изза того что PlaySound не предназначена для воспроизведения музыки.

возьмите TMediaPlayer, скройте его(Visible:=false), и просто применяйте его методы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.02.2012, 21:45   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

mcisendstring() и не надо использовать обертку TMediaPlayer
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.02.2012, 03:20   #6
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
mcisendstring() и не надо использовать обертку TMediaPlayer
? а поподробнее можно
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 22.02.2012, 09:32   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2012, 13:38   #8
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Вот так попробуйте
Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
  If Button1.Caption='Play'
    then
      begin
         Button1.Caption:='Stop';
         mciSendString('open waveaudio shareable',nil,0,0);
         mciSendString(PChar('Play 1.wav'),nil,0,0);
      end
    else
      begin
        Button1.Caption:='Play';
        mciSendString('stop 1.wav',nil,0,0);
         mciSendString('close waveaudio',nil,0,0);
        label6.Caption:=svtxt;
      end;
  label6.Visible:= not label6.Visible;
end;
или так
Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
  If Button1.Caption='Play'
    then
      begin
         Button1.Caption:='Stop';
         SndPlaySound('1.wav',SND_ASYNC);
      end
    else
      begin
        Button1.Caption:='Play';
        SndPlaySound(nil,0);
        label6.Caption:=svtxt;
      end;
  label6.Visible:= not label6.Visible;
end;

Последний раз редактировалось SERG1980; 22.02.2012 в 13:47.
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При компиляции программа зависает utro35 Общие вопросы Delphi 5 20.01.2012 11:24
Зависает программа на паскале при обращении к модулю АСМ toosya Помощь студентам 1 29.01.2011 14:19
При второй синхронизации программа зависает bulldog5293 Работа с сетью в Delphi 0 27.11.2010 14:42
VB6. Программа зависает при выполнении. Artinka Помощь студентам 2 03.04.2008 00:06