Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Как одновременно проиграть два файла?   Найти похожие ветки 

 
kblc ©   (2004-07-29 18:11) [0]

Уважаемые мастера, как одновременно можно проиграть 2 файла (может компоненты есть, но лучше через MCI)?

вот код для проигрывания одного файла, но как сделать это сразу для двух файлов? потоки создавать?

procedure mciPlayFile(FileName: string);
var
   Open_Params: TMCI_Open_Parms;
   Play_Params: TMCI_Play_Parms;
   FDeviceID: Word;
begin
  Open_Params.dwCallback:=0;
  Open_Params.wDeviceID:=0;
  Open_Params.lpstrDeviceType:=PAnsiChar(Copy(Filename,Pos(".",Filename)+1,3));
  Open_Params.LPSTRELEMENTNAME:=PChar(Filename);

  mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, Longint(@Open_Params));
  FDeviceID:=Open_Params.wDeviceID;
  mciSendCommand(FDeviceID, MCI_PLAY, MCI_WAIT, Longint(@Play_Params));
  mciSendCommand(FDeviceID, MCI_CLOSE,       0, Longint(@Open_Params));
end;


Заранее спасибо за советы.


 
pavia   (2004-07-29 23:27) [1]

убери MCI_WAIT.А как следствие строчка
mciSendCommand(FDeviceID, MCI_CLOSE,       0, Longint(@Open_Params)); должна сробатывать по зовершению фаила.Почитай про события mci.


 
kblc ©   (2004-07-30 10:54) [2]

ну а как сделать так, что бы я мог прослушать оба файла???


 
kblc ©   (2004-07-30 10:54) [3]

ну а как сделать так, что бы я мог прослушать оба файла одновременно???


 
Анонимщик ©   (2004-07-30 11:57) [4]

Тебе же порекомендовали, убери ожидание и загружай на прослушивание еще один файл. Не получается?


 
kblc ©   (2004-07-30 13:03) [5]

Убрал MCI_WAIT и команде mciSend..(..,MCI_CLOSE,..).. И теперь ваще ничего не работает... почему? может я что-то не так делаю?
может кто-нить сорс покажет?


 
kblc ©   (2004-07-30 18:16) [6]

Народ.. неужели мне никто не поможет?


 
Анонимщик ©   (2004-07-30 18:39) [7]

Сделай пока как-нибудь через потоки. Остальное в понедельник.


 
Вадим ©   (2004-07-30 20:16) [8]


> kblc ©   (30.07.04 18:16) [6]

 Вот здесь http://delphimaster.net/view/8-1082458665/ твою проблему уже решали! Там было так:
uses
MMSystem;

procedure SendMCICommand(Cmd: string);
var
RetVal: Integer;
ErrMsg: array[0..254] of char;
begin
RetVal := mciSendString(PChar(Cmd), nil, 0, 0);
if RetVal <> 0 then
begin
  {get message for returned value}
  mciGetErrorString(RetVal, ErrMsg, 255);
  MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMCICommand("open waveaudio shareable");
SendMCICommand("play "C:\xyz\BackgroundMusic.wav"");
SendMCICommand("play "C:\xyz\AnotherMusic.wav"");
SendMCICommand("close waveaudio");
end;

Или уж совсем внаглую:
mciSendString(PChar("play "C:\xyz\BackgroundMusic.wav""), nil, 0, 0);
mciSendString(PChar("play "C:\xyz\AnotherMusic.wav""), nil, 0, 0);

Удачи!



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
14-1096963030
Layner
2004-10-05 11:57
2004.10.24
Kodak выиграла иск о патентах на Java


3-1096299871
Fredericco
2004-09-27 19:44
2004.10.24
Компоненты для работы с БД PostgreSQL.


14-1096540499
Sergey_F
2004-09-30 14:34
2004.10.24
Как заблокировать клавиатуру в WinXP?


3-1095714619
Maxim______
2004-09-21 01:10
2004.10.24
тормоза BLOB в GDB


4-1095760732
romario
2004-09-21 13:58
2004.10.24
Буфер обмена.