Главная страница
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.03 c
8-1090940955
Аним
2004-07-27 19:09
2004.10.24
Анимация


1-1097573243
pika
2004-10-12 13:27
2004.10.24
Помогите пожалуиста с выбором !!!


1-1097217646
СержК
2004-10-08 10:40
2004.10.24
Сетка на выделенной строке в RxDbGrid


9-1088003860
3d_Vorpos
2004-06-23 19:17
2004.10.24
Проекция на плоскость эксрана точки в пространстве.


14-1097061052
Comp
2004-10-06 15:10
2004.10.24
Где можно скачать учебник по WinAPI с применением Delphi(не VC++)