AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wav-Dateien schneiden
Thema durchsuchen
Ansicht
Themen-Optionen

Wav-Dateien schneiden

Ein Thema von mumu · begonnen am 9. Feb 2004 · letzter Beitrag vom 10. Feb 2004
Antwort Antwort
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Wav-Dateien schneiden

  Alt 9. Feb 2004, 16:07
weiß jemand, wie ich am besten teile aus einer wave-datei extrahieren kann? z.b. ein lied ist 10 sec. lang und ich möchte den Inhalt des Liedes von der 2ten bis zur 6ten sekunde in neue Wav-Datei speichern...

danke schonmal
mumu
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#2

Re: Wav-Dateien schneiden

  Alt 10. Feb 2004, 12:27
Ich habs jetzt doch selbst hinbekommen:

Delphi-Quellcode:
Type
   TWavHeader = Record
                  RiffStr : Array[$00..$03] Of Char; { ID Block = 'RIFF' }
                  FileSize : LongInt; { Size of the complete file - 8bytes }
                  WaveStr : Array[$00..$03] Of Char; { ID Block = 'WAVE' }
                  FmtStr : Array[$00..$03] Of Char; { ID Block = 'fmt ' }
                  HeadSize : LongInt; { Size of header to this point}
                  FormatTag : Word; { Format Tag}
                  Channels : Word; { Numer of channels}
                  SampleRate : LongInt; { Sample rate in kHz}
                  BytesPSec : LongInt; { Bytes per second = SampleRate }
                  BlockAlign : Word; { Block align}
                  BitsPSmp : Word; { Bits per sample}
                  DataStr : Array[$00..$03] Of Char; { ID Block = 'data' }
                  SmpLength : LongInt; { Numer of bytes in the sample }
                End;
var
  ReadDatei, WriteDatei: THandle;
  WriteHeader, Readheader: TWavHeader;
  count: integer;
  buffer: char;
begin
  ReadDatei := FileOpen('C:\Test.wav',fmOpenRead);
  WriteDatei := FileCreate('C:\test2.wav');
 
  FileSeek(ReadDatei, 0, 0);
  FileRead(ReadDatei, ReadHeader, sizeof(TWavHeader));

  WriteHeader := ReadHeader;

  FileSeek(WriteDatei, 0, 0);
  FileWrite(WriteDatei, WriteHeader, sizeof(TWavHeader));

  FileSeek(WriteDatei, Sizeof(TWavHeader), 0);
  Fileseek(ReadDatei, Sizeof(TWavHeader), 0);

  count := 0;
  repeat
    FileRead(ReadDatei, buffer, 1);
    FileWrite(WriteDatei, buffer, 1);
    count := count + 1;
  until count >= ReadHeader.BytesPSec;

  FileClose(ReadDatei);
  FileClose(WriteDatei);
end;
dieser code extrahiert nur die erste sekunde aus einer wav-datei... lässt sich aber ohne probleme beliebig anpassen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz