Bit rate : 88.2 Kbps
Channel(s) : 1 channel
Sampling rate : 11.025 KHz
Bit depth : 8 bits
Channel(s) : 1 channel
Sampling rate : 11.025 KHz
Bit depth : 8 bits
Что делать? как исправить код?
Ответов: 1926
Рейтинг: 172
|
|||
Какие бы параметры записи (Bits, Stereo, Speed) ни выставить, всегда в файле получается одно и то же:
Bit rate : 88.2 Kbps Channel(s) : 1 channel Sampling rate : 11.025 KHz Bit depth : 8 bits Что делать? как исправить код? |
|||
карма: 9 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
3042 Проблемы с компонентом Record, а он где ?
|
|||
карма: 25 |
|
Ответов: 1926
Рейтинг: 172
|
|||
На вкладке Мультимедиа, это запись звука.
|
|||
карма: 9 |
|
Ответов: 258
Рейтинг: 2
|
|||
3042 писал(а): На вкладке Мультимедиа, это запись звукаДааа! Весело тут! |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
3042 писал(а): На вкладке Мультимедиа, это запись звука. У меня такого не нашёл. Там у меня 5 штук REC-ов и все запись звука . О каком идет речь ? |
|||
карма: 25 |
|
Ответов: 1821
Рейтинг: 168
|
|||
Tad, об этом:
scrrecord.png |
|||
карма: 5 |
| ||
файлы: 1 | scrrecord.png [5KB] [532] |
Ответов: 16884
Рейтинг: 1239
|
|||
Теперь понял. По кодам вроде всё должно работать. Вечером вникну.
|
|||
карма: 25 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Ну так что там?
У меня мысль, что строчки типа 'SAMPLESPERSEC ' + int2str(_prop_Speed) + не имеют пробела в начале: ' SAMPLESPERSEC ' + int2str(_prop_Speed) +, и последняя цифра сливается со следующим словом. А также при удалении параметра BYTESPERSEC запись качественнее, но при проигрывании в том же MediAPlayer (компонент hiasm ) позиция отображается неверно... |
|||
карма: 9 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Люди, вы где
Вопрос-то не решён |
|||
карма: 9 |
|
Ответов: 8927
Рейтинг: 823
|
|||
3042, наверное, с самого начала этот компонент так работал, что бы в свойствах ни выставить, получается 1 байт, моно, 11025 Гц дискретизация Вот, на картинке (пробелы в коды вставил):
mci.jpg Может в этой строчке:
|
|||
карма: 19 |
| ||
файлы: 1 | mci.jpg [129.3KB] [423] |
Разработчик
Ответов: 26161
Рейтинг: 2127
|
|||
Вот первоисточник команды Set -- http://msdn.microsoft.com/en-us/library/windows/desktop/dd798661(v=vs.85).aspx
Но я не нашел там вот этот параметр -- TIME FORMAT MS, может по-этому дальше остальные параметры не читаются ------------ Дoбавленo в 11.33: В чем-то другом проблема. MS -- это сокращение от milliseconds |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
mciSendString("set rec bitspersample 8 samplespersec 8000 channels 1", NULL, 0, NULL);
-устанавливает параметры устройства: 8000 отсчетов в секунду (то есть за одну секунду амплитуда сигнала снимается 8000 раз), для хранения одного отсчета (одного уровня амплитуды сигнала) используется 8 бит, то есть 1 байт, используется один звуковой канал ( то есть запись монофоническая, при стереофонической записи количество каналов - 2); Может быть здесь собака зарыта: Не нашел (да глубоко и не рыл), где бы наше ' CHANNELS ' + int2str(_prop_Stereo) могло стать CHANNELS 2 (у нас _prop_Stereo = или 0 или 1, но никак не 2). А 'BYTESPERSEC ' + int2str(round(_prop_Bits*_prop_Stereo*_prop_Speed/8)) при _prop_Stereo=Mono(0) вообще абсурд. |
|||
карма: 25 |
|
Разработчик
Ответов: 26161
Рейтинг: 2127
|
|||
Tad, там списки стоят, все правильно сделано. Ошибка не в этом. Для начала нужен стандартный ряд SAMPLESPERSEC, у нас описан округленный ряд -- к примеру, вместо 44000 нужно 44100. К тому же, я выснил, что 44100 и 48000 в Win7 не записывается моно, только стерео, а 32000 и ниже не записывается стерео, только моно. BYTESPERSEC не нужен вообще, если описаны остальные параметры
------------ Дoбавленo в 12.24: Последние уточнения такие --до 44100 в Win7 пишется только моно, а свыше 44100 пишется только стерео ------------ Дoбавленo в 12.32: Еще уточнил -- до 22050 понимает только 8 бит, 16 бит не понимает ------------ Дoбавленo в 12.43: SAMPLESPERSEC ниже 8000 вообще не понимается, как и 8000 тоже |
|||
карма: 22 |
|
Ответов: 1926
Рейтинг: 172
|
|||
nesco, у меня XP
Но у меня тоже ниже определённого значения Speed только 8 bit получается. Я вообще так проверял: {mciSendString(PChar('SET dlma TIME FORMAT MS ' + 'BITSPERSAMPLE ' + int2str(_prop_Bits) + ' SAMPLESPERSEC ' + int2str(_prop_Speed) + ' CHANNELS ' + int2str(_prop_Stereo) + ' BYTESPERSEC ' + int2str(round(_prop_Bits*_prop_Stereo*_prop_Speed/8))), nil, 0, 0);} mciSendString('SET dlma TIME FORMAT MS bitspersample 16 samplespersec 44100 channels 2 bytespersec 176400', nil, 0, 0); |
|||
карма: 9 |
|
Ответов: 8927
Рейтинг: 823
|
|||
nesco писал(а): 44100 и 48000 в Win7 не записывается моно, только стерео------------ Дoбавленo в 13.32: 3042, вот-вот, и я то же: mciSendString(PChar('SET dlma BITSPERSAMPLE 16, CHANNELS 2, SAMPLESPERSEC 48000, BYTESPERSEC 192000'), nil, 0, 0); ------------ Дoбавленo в 13.45: Так что остаётся надеяться на nesco -- он пограмотнее нас Кстати о птичках: в комплекте с BASS 2.4 приложен рекордер, *.exe всего 7,5 кбайт! форма и три кнопки, пишет стерео, данные в 4-х байтном формате с плавающей точкой *.wav |
|||
карма: 19 |
|