Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΈΡΡΠΈΠ½Π³ 20 — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² ID3v2 ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡ Π² TabItem2 (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2). ΠΠΈΡΡΠΈΠ½Π³ 4 — ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² (Π»ΠΈΡΡΠΈΠ½Π³ 5). ΠΠΈΡΡΠΈΠ½Π³ 17 — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ mp3-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈ ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ (Π»ΠΈΡΡΠΈΠ½Π³ 18). ΠΠΈΡΡΠΈΠ½Π³ 19… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (Π»ΠΈΡΡΠΈΠ½Π³ 1).
unit Unit1; //Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ.
interface //ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
uses //ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
System.SysUtils, System. Types, System. UITypes,.
System.Classes, System. Variants, FMX. Types, FMX. Controls, FMX. Forms, FMX. Graphics, FMX. Dialogs, FMX. TabControl,.
FMX.StdCtrls, FMX.ListView.Types, FMX. ListView, FMX. Layouts, FMX. Media, FMX. Objects;
ΠΠΈΡΡΠΈΠ½Π³ 1 — Π½Π°ΡΠ°Π»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π€ΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎΡΠΌΡ (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2). ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (Π»ΠΈΡΡΠΈΠ½Π³ 3).
var Key: Word; var KeyChar: Char; //ΠΎΠΏΡΠ΅Π΄Π΅Π»Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
Shift: TShiftState);
procedure ImageRepeatClick (Sender: TObject);
ΠΠΈΡΡΠΈΠ½Π³ 3 — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² (Π»ΠΈΡΡΠΈΠ½Π³ 4).
public.
procedure StopClear ();
procedure ID3tags ();
end;
ΠΠΈΡΡΠΈΠ½Π³ 4 — ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² (Π»ΠΈΡΡΠΈΠ½Π³ 5).
uses.
System.IOUtils, ID3v1Library, ID3v2Library;
ΠΠΈΡΡΠΈΠ½Π³ 5 — ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ΅Π³ΠΎΠ² ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Nil — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (Π»ΠΈΡΡΠΈΠ½Π³ 6).
var.
PauseTime: integer = 0; // ΠΏΠ°ΡΠ·Π°.
ID3v1Tag: TID3v1Tag = nil;
ID3v2Tag: TID3v2Tag = nil;
ΠΠΈΡΡΠΈΠ½Π³ 6 — ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π»ΠΈΡΡΠΈΠ½Π³ 17).
procedure TForm1. FormCreate (Sender: TObject);
var.
LList: TStringDynArray; // Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ².
LItem: TListViewItem; // ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ΅ΠΊΠΎΠ² Π² ListView1.
path: string; // ΠΏΠ°ΠΏΠΊΠ° Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΉΠ»ΠΎΠ².
i: Integer;
begin //Π½Π°ΡΠ°Π»ΠΎ Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
{ // ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° }.
if TDirectory. Exists ('/storage/') then.
path := '/storage/'.
else path := '/sdcard/';
ΠΠΈΡΡΠΈΠ½Π³ 17 — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ mp3-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈ ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ (Π»ΠΈΡΡΠΈΠ½Π³ 18).
{ // ΠΏΠΎΠΈΡΠΊ mp3 ΡΠ°ΠΉΠ»ΠΎΠ² }.
try //Π½Π°ΡΠ°Π»ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ.
LList:=TDirectory.GetFiles (path,'*.mp3', TSearchOption. soAllDirectories);
except.
ShowMessage ('ΠΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² mp3!');
Exit;
end;
ΠΠΈΡΡΠΈΠ½Π³ 18 — ΠΏΠΎΠΈΡΠΊ mp3-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ListView1 (Π»ΠΈΡΡΠΈΠ½Π³ 19).
{ // ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΡΠ΅ΠΊΠΎΠ² }.
ListView1.BeginUpdate;
try.
for i := 0 to Length (LList) — 1 do.
begin.
LItem := ListView1.Items.Add;
// ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° LItem. Text:=TPath.GetFileNameWithoutExtension (LList[I]);
// ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ Π² Detail.
LItem.Detail := LList[I];
end;
finally.
ListView1.EndUpdate;
end;
ΠΠΈΡΡΠΈΠ½Π³ 19 — ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π»ΠΈΡΡΠΈΠ½Π³ 20).
procedure TForm1. FormKeyUp (Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin.
if Key = vkHardwareBack then.
begin.
if TabControl1. ActiveTab = TabItem2 then.
begin.
TabControl1.ActiveTab := TabItem1;
Key := 0;
end;
end;
end;
ΠΠΈΡΡΠΈΠ½Π³ 20 — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² ID3v2 ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡ Π² TabItem2 (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2).
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² ID3v1 ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡ Π² TabItem2 (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3).
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠΎΠ² ΠΈ ΠΈΡ Π²ΡΠ±ΠΎΡΠ° (Π»ΠΈΡΡΠΈΠ½Π³ 23).
procedure TForm1. ListView1Change (Sender: TObject);
begin.
PlayClick (Self);
end;
ΠΠΈΡΡΠΈΠ½Π³ 23 — Π²ΡΠ±ΠΎΡ ΡΡΠ΅ΠΊΠ° ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠ°ΡΠ·Π°». ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠ΅ΠΊΠ° (Π»ΠΈΡΡΠΈΠ½Π³ 24).
procedure TForm1. PauseClick (Sender: TObject);
begin.
if (MediaPlayer1.State = TMediaState. Playing) then.
begin.
// ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°.
PauseTime := MediaPlayer1.Media.CurrentTime;
// ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ.
MediaPlayer1.Stop;
end;
end;
ΠΠΈΡΡΠΈΠ½Π³ 24 — ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΠ°ΡΠ·Π°» .
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Play». ΠΠ°ΡΠ°Π»ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΡΠ΅ΠΊΠ±Π°ΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΈ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠ°ΡΠ·Ρ, ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ², Π·Π°ΠΏΡΡΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4).
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ». ΠΡΠ»ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅ΠΌΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅ΠΊ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΡΠ»ΠΈ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° «Π‘Π»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅», ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ, ΠΈΠ½Π°ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΡΠ΅ΠΊ.
ΠΡΠ»ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅» (ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Π‘Π»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅»), Π½ΠΎ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° «Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ», ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5).
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΠ΅ΠΊ». ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅ΠΌΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΡΠ΅ΠΊΠΈ, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ½Π°ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ. ΠΠ½ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΡΠ΅ΠΊΠ° Π² ListView1 (Π»ΠΈΡΡΠΈΠ½Π³ 27).
procedure TForm1. PlayPrevClick (Sender: TObject);
begin.
if (ListView1.ItemIndex-1) AND ListView1. ItemIndex > 0) then.
begin.
ListView1.ItemIndex := ListView1. ItemIndex — 1;
PauseTime := 0;
PlayClick (Self);
end.
else begin.
StopClear;
end;
end;
ΠΠΈΡΡΠΈΠ½Π³ 27 — ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΠ΅ΠΊ» .
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π»ΠΈΡΡΠΈΠ½Π³ 28).
procedure TForm1. StopClear;
begin.
MediaPlayer1.Stop;
Timer1.Enabled := False;
ListView1.ItemIndex := -1;
TrackBar1.Value := 0;
TrackBar1.Enabled := False;
PauseTime := 0;
//Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ.
PlayPrev.Enabled := False;
Play.Enabled := False;
Pause.Enabled := False;
Stop.Enabled := False;
PlayNext.Enabled := False;
end;
ΠΠΈΡΡΠΈΠ½Π³ 29 — Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘ΡΠΎΠΏ» (Π»ΠΈΡΡΠΈΠ½Π³ 30).
procedure TForm1. StopClick (Sender: TObject);
begin.
if (MediaPlayer1.State = TMediaState. Playing) then.
begin.
StopClear;
end;
end;
ΠΠΈΡΡΠΈΠ½Π³ 30 — ΠΊΠ½ΠΎΠΏΠΊΠ° «Π‘ΡΠΎΠΏ» .
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ΅ΠΊΠ±Π°ΡΠ°. Π‘ΠΌΠ΅Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΠ΅ΠΊΠ±Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 6).
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΈ (Π»ΠΈΡΡΠΈΠ½Π³ 32).
procedure TForm1. TrackBar1Change (Sender: TObject);
begin.
// ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Tag ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ»Π°Π³, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
// ΡΡΠ΅ΠΊΠ±Π°ΡΠ° ΠΈ MediaPlayer1. CurrentTime ΠΏΡΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΈ.
if TrackBar1. Tag = 0 then.
begin.
// ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΠ°ΡΠ·Ρ.
if (MediaPlayer1.State = TMediaState. Stopped) AND (PauseTime 0) then.
begin.
PauseTime := Round (TrackBar1.Value);
end.
else.
begin.
MediaPlayer1.CurrentTime:= Round (TrackBar1.Value);
end;
end;
end;
end.