29.03.2015, 21:57
|
Прохожий
|
|
Регистрация: 29.03.2015
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
|
|
Как узнать позицию при записи wav через mciSendString?
Использую код Delphi:
Код:
var s:array [0..255] of char;
begin
fn := '12.wav';
mciSendString(PChar('open new type waveaudio alias AGD'), nil, 0, 0);
mciSendString('set AGD time format milliseconds format tag pcm ' +
'bitspersample 16 channels 1 samplespersec 44100 ' +
'alignment 2 bytespersec 88200' , nil, 0, 0);
mciSendString(PChar('record AGD to 5222'), nil, 0, 0);
repeat
mciSendString('status AGD position', @s, sizeof(s), 0);
OnEvt(s);
mciSendString('status AGD mode', @s, sizeof(s), 0);
sleep(20);
until s = 'stopped';
mciSendString(PChar('save AGD "' + fn + '"'), nil, 0, 0);
mciSendString('close AGD', nil, 0, 0);
end;
Но выдаёт в ф-цию OnEvt секунды*1000 (т.е. 1000, 2000, 3000...) вместо миллисекунд, только в конце, после 5000, выдаёт 5222. При этом аналогичный код для воспроизведения нормально выдаёт миллисекунды! Как же узнать миллисекунды при записи и почему так происходит?
|