Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#16: 2012-03-19 14:33:31 ЛС | профиль | цитата
3042 писал(а):
Я вообще так проверял

У меня твоя строка послала нафигю, и у меня вообще не понимает BYTESPERSEC
------------ Дoбавленo в 14.33:
Вот, потестируйте. Вроде че-то пишет. К onError прицепите мессагу, чтобы видеть ошибку формата
карма: 22

0
файлы: 1record_112.zip [1.8KB] [131]
Ответов: 8928
Рейтинг: 823
#17: 2012-03-19 17:07:35 ЛС | профиль | цитата
nesco, запись прошла на: 44100, стерео, 16 бит; 48000, стерео, 16 бит
Записалась только шапка (44 байта), да и та не совсем правильно: 48000, стерео, 8 бит; 96000, стерео, 16 бит;
Здесь выдавало пустое сообщение: 22050, стерео, 16 бит; 8000, стерео, 16 бит; 44100, моно, 16 бит
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#18: 2012-03-19 17:11:27 ЛС | профиль | цитата
Леонид писал(а):
96000

Это нафиг, убрать надо, в оригинале не было
------------ Дoбавленo в 17.11:
Леонид писал(а):
Здесь выдавало пустое сообщение: 22050, стерео, 16 бит; 8000, стерео, 16 бит; 44100, моно, 16 бит

Ошибка формата, все правильно, у меня та же песня
карма: 22

0
Ответов: 8928
Рейтинг: 823
#19: 2012-03-19 17:17:21 ЛС | профиль | цитата
nesco, а как же вот так можно: rectest-float_1.rar Вот "Нам бы да так!"
карма: 19

0
файлы: 1rectest-float_1.rar [4.5KB] [122]
Разработчик
Ответов: 26163
Рейтинг: 2127
#20: 2012-03-19 17:18:22 ЛС | профиль | цитата
Леонид писал(а):
Вот "Нам бы да так!

Там Bass.dll нужен
карма: 22

0
Ответов: 8928
Рейтинг: 823
#21: 2012-03-19 17:48:59 ЛС | профиль | цитата
nesco, да нет, я про размер!
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#22: 2012-03-19 17:59:01 ЛС | профиль | цитата
Леонид писал(а):
да нет, я про размер!

А Bass.dll, конечно, ничего не весит
карма: 22

0
Ответов: 1841
Рейтинг: 369
#23: 2012-03-19 17:59:11 ЛС | профиль | цитата
[offtop]
Леонид писал(а):
да нет, я про размер!


Compiler: Microsoft Visual C/C++ (MinGW)[/offtop]
карма: 1
0
Ответов: 3349
Рейтинг: 233
#24: 2012-03-19 18:55:58 ЛС | профиль | цитата
CriDos, Наверное совместимость с синтаксисом, точно не знаю
карма: 1

0
Ответов: 1926
Рейтинг: 172
#25: 2012-03-20 08:07:57 ЛС | профиль | цитата
nesco писал(а):
Вот, потестируйте. Вроде че-то пишет. К onError прицепите мессагу, чтобы видеть ошибку формата


nesco, если записанный файл при Speed=96000 (да и ниже тоже) запустить вот тут:
code_27244.txt
, то секунды бегут с бешеной скоростью. Это непорядок.

К тому же Windows Media Player выдаёт ошибку кодека и не открывает файл.
карма: 9
0
файлы: 1code_27244.txt [501B] [231]
Разработчик
Ответов: 26163
Рейтинг: 2127
#26: 2012-03-20 10:18:07 ЛС | профиль | цитата
3042 писал(а):
К тому же Windows Media Player выдаёт ошибку кодека и не открывает файл

Вот и добейтесь, что бы выдавало нормально. Там не кодовые переделки нужны, а текстовые эксперименты, у меня на это дело времени нет тестировать. 96000 уберите, его не должно быть совсем.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#27: 2012-03-20 11:53:17 ЛС | профиль | цитата
3042, попробуй вот так:
#pas
procedure THIRecord.open;
var i:integer;
bytes: integer;
begin
if not isOpen then
begin

mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS dlma', '', 0, 0);

bytes:=Trunc(_prop_Bits/4);

i:= mciSendString(PChar('SET dlma TIME FORMAT MS ' +
' BITSPERSAMPLE ' + int2str(_prop_Bits) +
' CHANNELS ' + int2str(_prop_Stereo)+
' SAMPLESPERSEC ' + int2str(_prop_Speed) +
' BYTESPERSEC ' + int2str(_prop_Speed*bytes)+
' alignment '+int2str(bytes)),'', 0, 0);

// _debug(i);
end;
isOpen:=true;
isRun:=true;
end;
Вроде нормально
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
2
Голосовали:3042, tom-it
Ответов: 1926
Рейтинг: 172
#28: 2012-03-20 12:09:12 ЛС | профиль | цитата
nesco писал(а):
текстовые эксперименты,

Тестировал я уже тексты, только после этого на форум пошёл.
А BASS, значит, нельзя использовать в коммерческих программах?
------------ Дoбавленo в 12.02:
Tad писал(а):
3042, попробуй вот так:


Да, вот это работает. Причём даже Speed=8000 или даже 1000 Гц - пишет нормально: если выставлено Bits=16, то и получается 2 байта на сэмпл!

Теперь, наверное, надо на SVN обновлённый выложить и в новые сборки обновлённый пихать.
------------ Дoбавленo в 12.09:
Хотя надо ещё немного доделать, т.к. при mono секунды при проигрывании уже не бегут быстрее реальных, а отстают в 2 раза. При этом файл в WMP не открывается. Если stereo, то всё нормально: секунды нормально идут, и файл в WMP открывается.

Ну, я ещё поэкспериментирую, там, видимо, alignment и не хватало...
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#29: 2012-03-20 12:25:46 ЛС | профиль | цитата
3042, никогда звуком не занимался Но что-то подсказывает, что в
bytes:=Trunc(_prop_Bits/4);
делитель менять надо в зависимости от МоноСтерео
Леонид
------------ Дoбавленo в 12.25:
[flood]Всё. Погнал на работу.[/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#30: 2012-03-20 13:03:52 ЛС | профиль | цитата
Обновление на SVN, тестируйте. Понимает и 96000 нормально.

Tad, alignment -- это bitspersample * channels / 8,
а bytespersec рассчитывался раньше правильно, те -- bitspersample * channels * samplespersec / 8 или alignment * samplespersec
------------ Дoбавленo в 13.03:
3042 писал(а):
там, видимо, alignment и не хватало...

Да, его и не хватало
карма: 22

2
Голосовали:3042, Леонид
Сообщение
...
Прикрепленные файлы
(файлы не залиты)