Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение продолжительности аудио / 6 сообщений из 6, страница 1 из 1
07.05.2013, 16:20
    #38250566
kulikovskih
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
Подскажите пожалуйста как получить продолжительность аудио файлов, лежащих в каталоге
...
Рейтинг: 0 / 0
07.05.2013, 16:24
    #38250578
kulikovskih
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
добавлю, файлы с расширением *.wav
...
Рейтинг: 0 / 0
07.05.2013, 16:56
    #38250647
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
Читай заголовок и разбирай побайтно. Структура заголовка описана
...
Рейтинг: 0 / 0
07.05.2013, 17:31
    #38250717
kulikovskih
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
из структуры заголовка не понял где хранится размер и как его перевести в секунды. Подскажите?
...
Рейтинг: 0 / 0
07.05.2013, 22:39
    #38251019
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
Читаешь структуру заголовка.
Определяешь размер сэмпла (при указанных параметрах формата в заголовке).
Делишь размер области данных на размер сэмпла - и получаешь длительность...
...
Рейтинг: 0 / 0
09.05.2013, 11:27
    #38252564
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение продолжительности аудио
Как-то так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
func GetWavDuration
lpara tcFile
LOCAL lcHdr, lnBitsPerSample, lnChunkSize, lnH, lnNumChannels, lnSampleRate
lnH = fopen(tcFile)
if lnH > 0
	lcHdr = fread(lnH, 44)
	fclose(lnH)
else
	? 'Ошибка открытия файла', tcFile
	return 0
endif

if left(lcHdr, 4) != 'RIFF'
	? 'Неправильная структура файла', tcFile
	return 0
endif

lnSubChunk2Size = ctobin(substr(lcHdr, 41, 4), '4RS')
lnBitsPerSample = ctobin(substr(lcHdr, 35, 2), '2RS')
lnNumChannels = ctobin(substr(lcHdr, 23, 2), '2RS')
lnSampleRate = ctobin(substr(lcHdr, 25, 4), '4RS')

return lnSubChunk2Size / (lnNumChannels * lnSampleRate * lnBitsPerSample / 8)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение продолжительности аудио / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]