purebasic.info

PureBasic forum
Текущее время: Пт дек 15, 2017 9:29 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: wav - файлы
СообщениеДобавлено: Сб окт 28, 2017 7:05 pm 
Не в сети
профессор

Зарегистрирован: Вс авг 31, 2014 12:11 am
Сообщений: 390
Благодарил (а): 49 раз.
Поблагодарили: 18 раз.
Пункты репутации: 10
Потребовалось объединить несколько wav файлов в один. Для этого каждый из них нужно прочесть без заголовка (только данные), который составляет 44 байта. Вот что получилось:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
Procedure merge(*buffer, length.q)
  If OpenFile(1, "c:\test\result.wav")
    FileSeek(1, Lof(1))
    WriteData(1, *buffer, length)
    CloseFile(1)
  EndIf
EndProcedure
 
#header = 44 ; bytes
 
NewList file.s()
AddElement(file())
file() = "c:\test\Windows Balloon.wav"
AddElement(file())
file() = "c:\test\Windows Battery Critical.wav"
AddElement(file())
file() = "c:\test\Windows Battery Low.wav"
 
 
ForEach file()
  If ReadFile(0, file())
    _data.q = Lof(0) - #header
    FileSeek(0, #header)
    *mem = AllocateMemory(_data)
    If *mem
      ReadData(0, *mem, _data)
    EndIf
    CloseFile(0)
    merge(*mem, _data)
    FreeMemory(*mem)
  EndIf
Next
 


но с FileSeek сомневаюсь, что отсчитал именно 44 байта? Проверьте кому не сложно. И ещё... в рузультирующий файл нужно дописать изменённый заголовок с изменившимся размером.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB