Показать сообщение отдельно
  #3  
Старый 12.12.2016, 14:19
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
А что такое TMCIPlayer ?
Это вас же пример с из ссылке выше:
Код:
uses
  MMSystem,
 
type
  TMCIPlayer = class
  private
    FDeviceID: Cardinal;
  public
    constructor Create(FileName: String);
    destructor Destroy; override;
    procedure Play;
    procedure Stop;
  end;
 
{ TMCIPlayer }
 
constructor TMCIPlayer.Create(FileName: String);
var
  OpenParms: TMCI_Open_Parms;
  FFlags: Longint;
  FError: Longint;
  Buffer: array [0..$ff] of Char;
begin
  inherited Create;
  OpenParms.dwCallback:=0;
  OpenParms.wDeviceID:=0;
  OpenParms.lpstrDeviceType:='';
  OpenParms.lpstrElementName:=PChar(FileName);
  OpenParms.lpstrAlias:=PChar(IntToStr(GetTickCount)+#0);
  FFlags:=MCI_WAIT or MCI_OPEN_ELEMENT or MCI_OPEN_ALIAS;
  FError:=mciSendCommand(0, MCI_OPEN, FFlags, Longint(@OpenParms));
  if FError=0 then FDeviceID:=OpenParms.wDeviceID
  else
  begin
    FDeviceID:=0;
    mciGetErrorString(FError, @Buffer[0], Length(Buffer));
    ShowMessage(StrPas(@Buffer[0]));
  end;
end;
 
destructor TMCIPlayer.Destroy;
var
  GenericParms: TMCI_Generic_Parms;
  FFlags: Longint;
begin
  if FDeviceID<>0 then
  begin
    GenericParms.dwCallback:=0;
    FFlags:=MCI_WAIT;
    if mciSendCommand(FDeviceID, MCI_CLOSE, FFlags, Longint(@GenericParms))=0 then
      FDeviceID:=0;
  end;
  inherited Destroy;
end;
 
procedure TMCIPlayer.Play;
var
  PlayParms: TMCI_Play_Parms;
  FFlags: Longint;
begin
  if FDeviceID<>0 then
  begin
    FFlags:=MCI_NOTIFY;
    PlayParms.dwCallback:=0;
    PlayParms.dwFrom:=0;
    PlayParms.dwTo:=0;
    mciSendCommand(FDeviceID, MCI_PLAY, FFlags, Longint(@PlayParms));
  end;
end;
 
procedure TMCIPlayer.Stop;
var
  GenericParms: TMCI_Generic_Parms;
  FFlags: Longint;
begin
  if FDeviceID<>0 then
  begin
    FFlags:=MCI_WAIT;
    GenericParms.dwCallback:=0;
    mciSendCommand(FDeviceID, MCI_STOP, FFlags, Longint(@GenericParms));
  end;
end;

Ну и собственно, в конструкторе потока
Код:
Asound:= TMCIPlayer.Create('d:\Alert.mp3');
Ответить с цитированием