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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2008, 11:53   #1
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
Вопрос PlaySound

При воспроизведении мелодии форма не отвечает как этого избежать чтоб мелодия играла и ничего не тормозило.
Пример моего использования:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
showwindow(application.Handle,sw_hi de);
if fileexists('backmusic.wav') then
begin
playsound(pchar('backmusic.wav'),0, snd_nostop);
Timer2.Enabled:=false;
end;
end;
delphin100 вне форума Ответить с цитированием
Старый 30.03.2008, 12:21   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
var MMplay:TMediaPlayer;
begin
        MMplay:=TMediaPlayer.Create(application);
        with MMplay do
        begin
                CreateParented(Form1.Handle);
                FileName:='D:\music\other\et.wav';
                Open;
                Play;
        end;
end;
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.

Последний раз редактировалось SunKnight; 30.03.2008 в 14:31.
SunKnight вне форума Ответить с цитированием
Старый 30.03.2008, 12:49   #3
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
Сообщение

медиа плеер я на форму поставил и визибл убрал.
теперь ошибка
delphin100 вне форума Ответить с цитированием
Старый 30.03.2008, 13:23   #4
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Ненужно выкидывать компонент на форму, так как он создается
MMplay:=TMediaPlayer.Create(applica tion);
удалите компонент с формы.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 30.03.2008, 14:18   #5
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
По умолчанию

Спасибо Попробую
delphin100 вне форума Ответить с цитированием
Старый 30.03.2008, 14:33   #6
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
По умолчанию

Всё-равно таже ошибка
delphin100 вне форума Ответить с цитированием
Старый 30.03.2008, 14:45   #7
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Код:
uses MPlayer;
.......................
procedure TForm1.Button1Click(Sender: TObject);
var MMplay:TMediaPlayer;
begin
        MMplay:=TMediaPlayer.Create(application);
        with MMplay do
        begin
                CreateParented(Form1.Handle); // укажи хандл своей формы
                FileName:='D:\music\other\et.wav';
                MMplay.Open;
                Play;
        end;
end;
Все работает. (Без компонента.) С медиаплеером бывает проблема что выскакивает такая ошибка, создайте новый проэкт и проэксперементируйте.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.

Последний раз редактировалось SunKnight; 30.03.2008 в 14:47.
SunKnight вне форума Ответить с цитированием
Старый 30.03.2008, 15:30   #8
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
По умолчанию

всё спасибо просто у меня 2 раза форма создавалась один раз в проджекте один раз в другой форме
delphin100 вне форума Ответить с цитированием
Старый 30.03.2008, 15:32   #9
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
По умолчанию

другой вопрос как с плеером циклически воспроизвести
delphin100 вне форума Ответить с цитированием
Старый 31.03.2008, 08:40   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Const SND_SYNC = &H0 ' Файл воспроизводится синхронно
' и функция не возвращает управление до окончания воспроизведения

Const SND_ASYNC = &H1 ' Файл воспроизводится асинхронно
' и функция возвращает управление сразу же после
' начала воспроизведения. Для того, чтобы
' прервать воспроизведение, необходимо вызвать
' функцию sndPlaySound с именем файла, равным ""

Const SND_NODEFAULT = &H2 ' Указывает на то, что если файл,
' заданный первым параметром, не найден, то не должен
' воспроизводиться файл по умолчанию

Const SND_MEMORY = &H4 ' Указывает на то, что имя файла
' соответствует WAV-файлу, находящемуся в памяти,
' например, загруженному из ресурса

Const SND_LOOP = &H8 ' Файл воспроизводится от начала до
' конца бесконечное число раз до тех пор, пока не
' вызвана функцию sndPlaySound с именем файла, равным "".
' При таком воспроизведении должен быть указан и флаг
' SND_ASYNC

Const SND_NOSTOP = &H10 ' Функция возвращает FALSE, если
' в момент ее вызова уже воспроизводится какой-нибудь файл

' Соответственно, реальное обращение
' к функции sndPlaySound может выглядеть примерно так

Result = sndPlaySound("c:\wav\demo.wav", SDN_ASYNC or SND_LOOP)
SERG1980 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PlaySound() Артэс Общие вопросы C/C++ 7 19.09.2010 20:18
PlaySound для 2 файлов JoanM Мультимедиа в Delphi 12 25.09.2008 17:05