pcmaudio: bugfix corrupted audio, loop mode, adjust examples

This commit is contained in:
slederer 2026-01-02 22:56:39 +01:00
parent 79baf3cef5
commit 11814cd24f
5 changed files with 363 additions and 46 deletions

View file

@ -1,32 +1,21 @@
{$H1536}
program pcmtest;
{$H2560}
program pcmtest2;
uses pcmaudio;
var filename:string;
buf:SndBufPtr;
f:file;
size:integer;
i:integer;
c:char;
sampleRate:integer;
err:integer;
done:boolean;
c:char;
function readAudioFile(fname:string):SndBufPtr;
var i,size:integer;
c:char;
buf:SndBufPtr;
f:file;
begin
if ParamCount > 0 then
filename := ParamStr(1)
else
begin
write('Filename> ');
readln(filename);
end;
err := 1;
if ParamCount > 1 then
val(ParamStr(2),sampleRate, err);
if err <> 0 then
sampleRate := 16000;
open(f, filename, ModeReadOnly);
open(f, fname, ModeReadOnly);
size := FileSize(f);
new(buf, size);
@ -41,6 +30,26 @@ begin
close(f);
readAudioFile := buf;
end;
begin
if ParamCount > 0 then
filename := ParamStr(1)
else
begin
write('Filename> ');
readln(filename);
end;
err := 1;
if ParamCount > 1 then
val(ParamStr(2), sampleRate, err);
if err > 0 then
sampleRate := 22050;
buf := readAudioFile(filename);
PlaySample(buf, sampleRate);
dispose(buf);