Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 12:25   #11
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Что то ни че не получается. А временный файл хоть и хорошо работает но это не есть Гуд
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 14.12.2009, 12:43   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

так-с... вот навскидку (на компиляторе не проверял) накрапал... нужно загнать те в буфер сам звуковой файл из твоего архива и получить точку входа... что-то вроде такого...
Код:
var
p: pointer;
begin
 GetMem(p, sizeof(buf));
 BlockRead(buf {проверь сий параметр, мож че напутал}, p^, sizeof(buf));
 sndPlaySound(p, SND_MEMORY or SND_SYNC);
 FreeMem(p, FileSize);
end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.12.2009, 12:48   #13
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

в buf загнать сам файл?
какого типа делать buf?

Код:
var buf: array of char;
и в него слить ту часть файла, которая звук?
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 14.12.2009, 12:54   #14
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

слить весь звуковой файл... какого типа не скажу, компилятора сейчас нет под рукой.. нажми после скобок Ctr+SPACE дельфя сама подскажет
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.12.2009, 13:11   #15
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

что то не так...
Код:
BlockRead();//работает как то по другому
эта штука, как я понял читает из файла в буфер buf,
ну что то типа
Код:
setLength(buf,конечная позиция-начальная_позиция+1)
for i:=начальная_позиция to конечная_позиция do
read(file,buf[i-начальная_позиция]);
но это то фигня, а вот как передать это в pointer?
и озвучить полученное?
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 20.12.2009, 21:54   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вот добрался и до вас
Цитата:
но это то фигня, а вот как передать это в pointer?
и озвучить полученное?
указатель передать просто на буфер - @buf и все дела... вашу проблему решил:
Код:
var
 buf: array [1..9752] of byte; // размер wav внутри dat
 fDAT: tmemorystream;
begin
 fDAT:= TMemoryStream.Create;
 fDAT.LoadFromFile('1.dat');
 fdat.Position:= 4; // читаем со сдвигом на 4 байта-

 fdat.ReadBuffer(buf, sizeof(buf)); // массив четко определен

 sndPlaySound(@buf, SND_MEMORY or SND_SYNC)
end;
допустим у нас есть известный wav файл (набор данных) с известным размером и положением внутри вашего архива (как мы уже с вами обсуждали)... мне пришлось сымитировать ситуацию на примере DAT файла внутрь которого через редактор Notepad2 всунул набор wav-данных со структурой между 4 байтами единиц и 1 байтом единицы... таким образом, чтобы получить наш набор у нас известны следующие величины: сдвиг (4 байта) и размер буфера, указатель на буфер мы уже имеем, заполним (см. выше код) буфер через memorystream и Вуа-ля!

тестовый проект прилагаю...
Вложения
Тип файла: zip pointer_wav_in file.zip (245.3 Кб, 8 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.12.2009, 17:10   #17
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

спасибо большое. отзыв оставлю... как только еще кому то поставлю отзыв
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sound Forge редактирование скрипта на C# Сергей86 Помощь студентам 2 12.10.2009 05:42
integer Xcopy Общие вопросы Delphi 8 13.09.2009 17:03
Integer ben95 Помощь студентам 5 03.03.2009 16:05
Записать в Integer Михаил Юрьевич Общие вопросы Delphi 3 04.07.2008 17:11
sound djbaxo Общие вопросы C/C++ 4 20.05.2007 21:52