Zapisywanie do pliku

0

Witam. Mam problem w postaci zapisywania do pliku, a mianowicie chodzi o to, że program polega na tym, iż wgrywamy piosenkę i możemy z niej "wyciąć" interesujący nas fragment i zapisać do odrębnego pliku. Jednak tutaj pojawia się mój problem. Nie wiem jak zapisać ten wycięty fragment piosenki do pliku? Tutaj jest cały kod:

unit knif;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, MPlayer, ExtCtrls, Math;

type
  TForm1 = class(TForm)
    prezentacja: TEdit;
    PLAY: TButton;
    STOP: TButton;
    PAUSE: TButton;
    OPEN: TButton;
    SAVE: TButton;
    CLIPINFORMATION: TGroupBox;
    beginposition: TEdit;
    endposition: TEdit;
    lenght: TEdit;
    SS: TButton;
    SE: TButton;
    TrackBar1: TTrackBar;
    CURRENTTIME: TGroupBox;
    currenttim: TEdit;
    OpenDialog1: TOpenDialog;
    muza: TMediaPlayer;
    Label1: TLabel;
    Timer1: TTimer;
    SaveDialog1: TSaveDialog;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure OPENClick(Sender: TObject);
    procedure PLAYClick(Sender: TObject);
    procedure STOPClick(Sender: TObject);
    procedure PAUSEClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure muzaClick(Sender: TObject; Button: TMPBtnType;
      var DoDefault: Boolean);
    procedure SAVEClick(Sender: TObject);
    procedure SSClick(Sender: TObject);
    procedure SEClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure CLIPINFORMATIONClick(Sender: TObject);
    procedure beginpositionChange(Sender: TObject);
    procedure endpositionChange(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Label4Click(Sender: TObject);
    procedure lenghtChange(Sender: TObject);
    procedure CURRENTTIMEClick(Sender: TObject);
    procedure currenttimChange(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure prezentacjaChange(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x :real;
  y : real;
  koniec : real;
  poczatek : real;
  z : string;

implementation

{$R *.dfm}

procedure TForm1.OPENClick(Sender: TObject);
begin
try
if Opendialog1.Execute then begin
PLAY.Enabled := true;
STOP.Enabled := true;
PAUSE.Enabled := true;



end;
except
end;

end;
procedure TForm1.PLAYClick(Sender: TObject);
begin
muza.FileName := OpenDialog1.FileName;
muza.open;
TrackBar1.Max := muza.Length;
muza.play;
SS.Enabled := true;
SE.Enabled := true;
end;

procedure TForm1.STOPClick(Sender: TObject);
begin
muza.FileName := OpenDialog1.FileName;
muza.open;
TrackBar1.Max := muza.Length;
muza.Stop;
end;

procedure TForm1.PAUSEClick(Sender: TObject);
begin
muza.FileName := OpenDialog1.FileName;
muza.open;
TrackBar1.Max := muza.Length;
muza.Pause;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
PLAY.Enabled := false;
STOP.Enabled := false;
PAUSE.Enabled := false;
SS.Enabled := false;
SE.Enabled := false;
SAVE.Enabled := false;
end;



procedure TForm1.muzaClick(Sender: TObject; Button: TMPBtnType;
  var DoDefault: Boolean);
begin
muza.FileName := OpenDialog1.FileName;
muza.open;
end;

procedure TForm1.SAVEClick(Sender: TObject);
begin
x := koniec-poczatek;
z := FloatToStr(x);
SaveDialog1.FileName := 'alarm.mp3';
SaveDialog1.execute;



end;
                                                                          
procedure TForm1.SSClick(Sender: TObject);


begin
  poczatek := muza.Position/1000;
  Label2.Caption := FloatToStr(RoundTo(poczatek,0));
  if StrToFloat(Label4.Caption) > 0 then SAVE.Enabled := true;
end;

procedure TForm1.SEClick(Sender: TObject);
begin
  koniec := muza.Position/1000;
  Label3.Caption := FloatToStr(RoundTo(koniec,0));
  Label4.Caption := FloatToStr(RoundTo(koniec-poczatek,0));
  if StrToFloat(Label4.Caption) > 0 then SAVE.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
y := muza.Position/1000;
TrackBar1.Position := muza.Position;
Label1.Caption := FloatToStr(RoundTo(y,0));


end;

procedure TForm1.CLIPINFORMATIONClick(Sender: TObject);
begin

end;

procedure TForm1.beginpositionChange(Sender: TObject);
begin

end;

procedure TForm1.endpositionChange(Sender: TObject);
begin

end;

procedure TForm1.Label2Click(Sender: TObject);
begin

end;

procedure TForm1.Label3Click(Sender: TObject);
begin

end;

procedure TForm1.Label4Click(Sender: TObject);
begin

end;

procedure TForm1.lenghtChange(Sender: TObject);
begin

end;

procedure TForm1.CURRENTTIMEClick(Sender: TObject);
begin

end;

procedure TForm1.currenttimChange(Sender: TObject);
begin

end;

procedure TForm1.Label1Click(Sender: TObject);
begin

end;

procedure TForm1.prezentacjaChange(Sender: TObject);
begin

end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin

end;

end.
 
0

A czy ty masz pojęcie z czego składa się plik dźwiękowy np mp3 ?

0
proqix napisał(a)

A czy ty masz pojęcie z czego składa się plik dźwiękowy np mp3 ?

Niestety żeby rozwiązać Twój problem trzeba znać budowę pliku mp3; Jest wiele artykułów na ten temat w Internecie, więc musisz zacząć czytać:

mp3 - Wikipedia
Budowa pliku mp3 - 4programmers.net

mp3 File Format
mp3 File Structure Description
Inside the MP3 Codec - MP3 Anatomy

Jak zrozumiesz budowę tego pliku i poznasz operacje, jakie są potrzebne do edycji zawartości empe3 wtedy zacznij zadawać pytania;

1 użytkowników online, w tym zalogowanych: 0, gości: 1