Ich habe mich da mal reingefuchst, aber anscheinend ist meine Idee nicht so prickelnd:
Ein paar Sec ins File reingehen, nach der ersten Silence suchen und Länge abfragen... leider funktionierts nicht...
Code:
....
count := 100000;
silence := 0;
BASS_ChannelSetPosition(chan, count, BASS_POS_BYTE);
while Bass_ChannelIsActive(chan) <> 0 do
begin
b := BASS_ChannelGetData(chan, @buf, 20000);
b := b div 2;
a := 0;
while (a < b) and (Abs(buf[a]) >= threshold) do
a := a + 1;
count := count + (a * 2);
c := count;
if (c < b) then
begin
while (c <> 0) and (Abs(buf[c]) < (threshold div 2)) do // div4 geändert
begin
c := c + 1;
silence := silence + 2;
end;
Break;
end;
end;
FirstSilence := count;
LengthSilence:= silence;