Einzelnen Beitrag anzeigen

Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: "bass.dll" Aufnahme an beliebiger Stelle im St

  Alt 28. Aug 2008, 20:04
Hi, das Problem ist doch noch nicht gelöst

Wenn die Länge der zweiten Aufnahme größer ist als die des ursprünglich überschriebenen Streams, dann entsteht ein ganz hässliches Rauschen. Ich glaube dass das mit SetSize zusammenhängt.

Hier der jetzige Code:

Delphi-Quellcode:
        // Aufnahme je nach Aufnahmemodus
      if WaveStream.Size = 0 then
        begin
        end
      else
        begin
      if Rec_Passage.Checked = True then
        begin
          try
            WaveStream.Position := GetPos;
            BufStream := TMemoryStream.Create;
            BufStream.CopyFrom(WaveStream, WaveStream.Size-WaveStream.Position);
            WaveStream.Position := GetPos;
          except
            FreeAndNil(BufStream);
          end;
        end
      else
        begin
          try
            WaveStream.Position := GetPos;
            WaveStream.SetSize(BASS_ChannelGetLength(rchan)-WaveStream.Position);
          except
          end;
      end; // if

und beim Beenden der Aufnahme:

      if Rec_Passage.Checked = True then
        begin
          try
            WaveStream.CopyFrom(BufStream, 0);
          finally
            FreeAndNil(BufStream);
          end;
      end; // if

Rec_Passage soll eigentlich eine neue Passage einfügen und Rec_Overwrite soll ab der Position an der man sich befindet alles überschreiben.

Kann mir da vielleicht doch einer helfen?


Und bei den Moderatoren möchte ich mich ganz herzlich für die ganzen Doppelposts entschuldigen. Werde ab jetzt die Edit-Funktion nutzen.


Gruß,
Duck
Franz
  Mit Zitat antworten Zitat