안녕 하세요?
BacTeria 박종민 입니다.
델파이에서 *.MP3를 플레이 할때는 mciSendString 함수를 쓰면 쉽게 해결이 됩니다.
아래에 제가 쓰려고 만들어 놓은 함수들을 공개 합니다.
도움이 되었으면 좋겠습니다.
이만...
(주)메디슨 박종민...
------------------------------------------------------------------------------
* uses 절에 'MMSystem'을 추가 합니다.
procedure OpenMP3(FileName: String);
begin
mciSendString(PChar('open "' + FileName + '" alias mp wait'), nil, 0, 0);
end;
procedure PlayMP3;
begin
mciSendString(PChar('play mp'), nil, 0, 0);
end;
procedure StopMP3;
begin
mciSendString(PChar('stop mp'), nil, 0, 0);
end;
procedure PauseMP3;
begin
mciSendString(PChar('pause mp'), nil, 0, 0);
end;
procedure CloseMP3;
begin
mciSendString(PChar('close mp'), nil, 0, 0);
end;
procedure ForwardMP3(ToPlace: LongInt = 1);
var
TmpStr: PChar;
begin
GetMem(TmpStr, 128);
mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0);
mciSendString(PChar('status mp position wait'), TmpStr, 128, 0);
mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) + ToPlace)),
nil, 0, 0);
mciSendString(PChar('set mp time format tmsf'), nil, 0, 0);
FreeMem(TmpStr);
end;
procedure RewindMP3(ToPlace: LongInt = 1);
var
TmpStr: PChar;
begin
GetMem(TmpStr, 128);
mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0);
mciSendString(PChar('status mp position wait'), TmpStr, 128, 0);
mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) - ToPlace)),
nil, 0, 0);
mciSendString(PChar('set mp time format tmsf'), nil, 0, 0);
FreeMem(TmpStr);
end;
function GetMP3Len: LongInt;
var
TmpStr: PChar;
begin
GetMem(TmpStr, 128);
mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0);
mciSendString(PChar('status mp length wait'), TmpStr, 128, 0);
mciSendString(PChar('set mp time format tmsf'), nil, 0, 0);
Result := StrToInt(TmpStr);
FreeMem(TmpStr);
end;
function GetMP3Pos: LongInt;
var
TmpStr: PChar;
begin
GetMem(TmpStr, 128);
mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0);
mciSendString(PChar('status mp position wait'), TmpStr, 128, 0);
mciSendString(PChar('set mp time format tmsf'), nil, 0, 0);
Result := StrToInt(TmpStr);
FreeMem(TmpStr);
end;
procedure SetMP3Pos(ToPlace: LongInt = 1);
begin
mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0);
mciSendString(PChar('play mp from ' + IntToStr(ToPlace)), nil, 0, 0);
mciSendString(PChar('set mp time format tmsf'), nil, 0, 0);
end;
|