Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

wave в файлах   Найти похожие ветки 

 
кекс   (2004-02-05 17:57) [0]

Значится такая проблема, есть файл, неважно какой, играющий роль банка или библиотеки ресурсов, в нем лежат разные файлы, в том числе и wave, и вот енти wave мне оттуда надо выдернуть, мож кто сможет помочь кодом али чем; пробовал искать по файлу места где написано "RIFF", не получилось, да и тем более, что есть другие riff файлы кроме wave, да и потом не знаю как найти конец вава в этом файле.


 
Digitman ©   (2004-02-05 18:46) [1]


> есть файл, неважно какой


т.е. тебе его формат неизвестен ?
какое хоть расширение у него , можно полюбопытствовать ?


> пробовал искать по файлу места где написано "RIFF", не получилось


может, файл скомпрессирован каким-то компрессором ... возможно даже нестандартным ... ты же этого заранее не знаешь, как я полагаю


> не знаю как найти конец вава в этом файле


так ты хоть начало найди ... wav-файл начинается с заголовка, в котором :

- по смещению 0 (dword) : "RIFF"
- по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла
- по смещению 8 (qword) : "WAVEfmt "

думаю, что если это какой-то нестанд.формат контейнера, то он скорей всего оформлен в виде некоей библ-ки и должен обязательно содержать какой-то заголовок, описывающий либо все содержимое контейнера либо указывающий на 1-й элемент односвязного списка, из заголовка и следом идущие данные


 
кекс   (2004-02-05 21:30) [2]

какой это файл значения не имеет, смысл в том, чтобы найти заголовок wave файла - это первая проблема, затем найти его конец - вторая проблема, ну и выдрать его оттуда - третья, даже если он сжат - это значения не имеет, он лежит там в виде wave файла, разве что если он не сжат самой библиотекой до неузнаваемости


 
Digitman ©   (2004-02-06 08:33) [3]

на вопрос о поиске и локализации образа waveфайла в файле-контейнере, если он не сжат ничем, я тебе уже ответил. Исчерпывающая инф-ция для решения задачи.

все карты тебе в руки


 
кекс   (2004-02-06 10:15) [4]

даже если я найду его начало, то как мне найти его конец?


 
Jel ©   (2004-02-06 10:18) [5]

для поисков конца - Смотри формат .WAV
для поисков начала - в упакованом файле это маловероятно без распаковки. И к тому же, откуда уверенность что звук лежит именно в формате WAV? Ты вроде искал его по заголовкам и не нашел.


 
Digitman ©   (2004-02-06 12:07) [6]


> кекс   (06.02.04 10:15) [4]
> даже если я найду его начало, то как мне найти его конец?


еще раз тебе говорю :
образ стандартного wav-файла начинается с заголовка, в котором :

- по смещению 0 (dword) : "RIFF"
- по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла
- по смещению 8 (qword) : "WAVEfmt "

пусть начало фразы "RIFF" ты обнаружил по абс.смещению 100 от начала файла-контейнера

смотришь, что лежит по абс.смещению 100 + 8 = 108

если там обнаружена фраза "WAVEfmt ", значит по абс.смещению 100 находится именно WAV-образ, а не просто некий RIFF-образ

тогда по абс.смещению 100 + 4 = 104 берешь 4 байта, интерпретируешь их как dword и получаешь значение этого dword"а

пусть оно, к примеру, оказалось равным 1000

теперь можно определить границы и размер wav-образа в файле-контейнере :

начало образа = 100

конец образа = 100 + (1000 + 8) - 1 = 1107

полная длина образа = конец образа - начало образа + 1 = 1107 - 100 + 1 = 1008 байт

это так сложно ?


 
кекс   (2004-02-06 19:16) [7]

Спасибо, извини за непоннятливость, я пропустил, фразу: "по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла" :)



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1082130461
Zorlag
2004-04-16 19:47
2004.05.02
Плавное появление формы на экране


1-1081945120
siriusP
2004-04-14 16:18
2004.05.02
Почему сбрасываются свойства в компоненте?


1-1082097644
Ivolg
2004-04-16 10:40
2004.05.02
FindDialog


3-1080999062
Skif
2004-04-03 17:31
2004.05.02
Передать результат запроса в массив


1-1082096797
Litva
2004-04-16 10:26
2004.05.02
помогите новенкой...