Hi,
vielleicht kennt ihr so Audio-Editoren wie den Nero Wave Editor. Die Stellen die Wave-Datei ja komplett als "Visualisierung" dar.
Frage: Wie kriege ich das mit der Bass.dll hin, und schreibe diese "Visualisierung" auf ein Bitmap?
(Es soll nur so eine Art Thumbnail sein.)
Ich habe es so versucht:
Delphi-Quellcode:
function TForm1.GeneratePeaks(height,width:integer;stream:HStream):TBitmap;
var i,len,r,l,ypos,xpos:integer;
var WaveData : TWaveData;
begin
result := TBitmap.Create;
result.Height := height;
result.Width := width;
for len := 0 to bass.BASS_StreamGetLength(stream) do
begin
BASS_ChannelSetPosition(stream,len);
BASS_ChannelGetData(stream, @WaveData, 2048);
for i := 0 to 255 do
begin
R := SmallInt(Loword(WaveData[i * 1]));
L := SmallInt(HIword(WaveData[i * 1]));
YPos := Trunc(((R + L) / (2 * 65535)) * 1);
xpos := trunc(len * (width / (BASS_StreamGetLength(stream))));
result.Canvas.LineTo(xpos,ypos-10);
end;
end;
end;
YPos ist irgendwie immer 0!
Danke für eure Antworten.