Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 3 KB

version0_5.md

File metadata and controls

20 lines (15 loc) · 3 KB

Изменения (r27)

Функции dump больше нет, она заменена на функцию saveSample. Для её работы в объект RadioChronicle внесены дополнительные переменные: audioFile - указатель на .wav файл. Сделано для того, чтобы не приходилось каждый раз переоткрывать файл. audioFileLength - тк теперь sample - это не весь интересующий нас трек, а лишь крайний кусочек, который еще не успел попасть в файл, то информацию об общей длительности трека необходимо хранить отдельно.

Идея работы функции: Она видит содержимое sample. Если у неё нет файла, куда бы его надо было записать, файл создаётся. Если sampleLength равен нулю - всё хорошо, у нас громкий сэмпл, записываем его и не думаем ни о чём. Если sampleLength отличен от нуля, это может значить лишь одно: функция была вызывана, когда уже пошла тишина, мы засекли, на каком времени она началась, и нового громкого сэмпла не последовало (иначе бы sampleLength сбросился), так что запись пора прекращать, а файл закрывать. Также возможен вызов функции по случаю выхода из программы (inLoop==False). В этом случае значение sampleLength может оказаться равным и нулю тоже, а файл закрывать всё равно надо.

Добавилась отсечка слишком коротких звуковых сигналов. В принципе, я продолжаю считать, что этот функционал не слишком нужный (по этому по умолчанию пишется всё), но пусть будет :)

Так как теперь запсиь данных сразу идет на диск, то отсечка производится не на уровне "сохранять/не сохранять", а уже после сохранения файла. Если его длительность оказалась ниже заданной, то файл удаляется.

Небольшие улучшения в рабочем порядке: более аккуратно прописано закрытие файла, нежели в первой редакции 0.4 версии, и исправлен метод подсчета длины файла, опять-таки, относительно первой редакции.