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