Текущий архив: 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.033 c