Ребят, такая проблема. Помогите, пожалуйста, любыми советами или дайте ссылки на нужную литературу! В общем, есть WAV-файл, который я подгружаю в прогу на Делфях. 1-й вопрос: Как выхватить понравившийся кусок и затем его воспроизвести? 2-й вопрос: Как направить этот кусок файла в LPT-порт для записи на цифровое устройство, которое к нему подключено? Заранее благодарен всем высказавшимся по этому поводу!
Выхватить кусок элементарно. Загрузить оглавление файла в память, узнать его формат. А далее, зная время начала куска и его конца, находим адрес куска в файле и читаем. Далее используем функции WaveOut*** и всё ништяк. Описаний формата WAVE в инете тысячи. Главное, проверять, чтобы в файле не применялся никакой способ сжатия. А то ещё придётся распаковкой заниматься. Решение второго вопроса зависит от устройства. Кстати, скорости порта может запросто не хватить.
Foamplast, а ты можешь поподробней о загрузке оглавления файла в память и какие/как функции WaveOut*** использовать для выхватывания фрагмента? И, вообще, я правильно понимаю, что пусть WAV-файл будет даже сжат, но мне-то нужно в LPT посылать побайтово выхваченный кусок аудиопотока. А он, как я понимаю, будет в памяти уже в распакованном виде? И тогда возникает попутный вопрос: Как узнать адрес куска в памяти, чтобы начать его пересылать в порт? Только ли распакованный WAV можно записывать на цифровое устройство, в моем случае подключенное к LPT-порту? Пожалуйста, помогите понять эту шнягу! Я в программировании звука не очень разбираюсь, поэтому собственно и задаю такие вопросы.
_vovan_ Так это от устройства зависит. И ты надеешься, что за одно сообщение, тебя сразу научат Даже Си минимально учат "за 21 день", а звук + устройства - это вообще надолго. А вот если бы ты изучал стандартные программы Виндов, то без всяких Дельфей смог бы вырезать кусок звукового файла и записать его sndrec32 называется.
valterg'уСлушай, мне не нужны стандартные проги Винды. Мне нужно запрограмить! А насчет того, что быстро не научусь - не переживай, это мое дело. Ты бы лучше дельным советом помог!!!
_vovan_ Тогда уточни, что ты понимаешь под словом "подгружаю" ?! А по Дельфи есть отличный ресурс для начинающих и не только : torry.net Правда там на английском, но ребята в основном русские
_vovan_ Тогда два варианта : либо найти готовый компонент, в котором нужные функции реализованы ( вырезание куска) и "запрограммить" их на "кнопочки", либо разбираться с "механикой" компонента и дописывать свои функции через механизм подклассов(subclass). Я в этом деле больше теоретик и вряд ли могу помочь. Поэтому лучше сходить на специализированные форумы по Дельфи и там поспрашивать : скорее всего все функции есть и в твоем компоненте, только ты либо не знаешь про них, либо не умеешь пользоваться. В Visual Basic я обычно шел в help и смотрел список свойств и методов об"екта и довольно часто находил то, что нужно. На torry.net есть проекты со свободными текстами : например я оттуда взял пакет для работы с COM-портом и на его основе сделал прогу для модема. А если хочешь чтобы здесь ответили, так формулируй вопрос конкретнее, здесь ведь wasm и все "очень просто программируется"
Ладно, допустим я выхватил кусок звукового файла и этот кусок у меня находится в буфере. Теперь надо переслать данные из этого буфера на устройство в LPT. У меня такой вопрос: из драйвера тупо писать в порт с помощью OUT или нужно делать фильтр LPT?
_vovan_ Неупакованный WAV, насколько я знаю, содержит просто амплитуды сигнала. Но - он бывает 8-битный(старые) и 16-битный (новые). Может быть запакованный, тогда без фильтра не обойтись, но мне кажется, что компонента уже должна его распаковать. Если твое устройство пишет аналоговый сигнал, тогда нужен ЦАП( цифро-аналоговый преобразователь), если в цифре, то все равно нужно согласовать сигналы. Кроме того, передача по LPT требует синхронизации в обе стороны. А что ты имеешь ввиду под фильтром ?! +++++++++++++++++++++++++++++++++++ А вообще-то для этого дела гораздо лучше подходит звуковая карта - у нее уже есть аналоговый выход. С цифрой, наверное, сложнее, но ведь веревка к СиДи - цифровая ?! Или я не прав.
valterg "А что ты имеешь ввиду под фильтром ?!" Под фильтром я имею ввиду драйвер-фильтр LPT-порта. И спрашиваю, использовать ли в обычном одноуровневом драйвере IN и OUT либо создавать PnP драйвер и цеплять его к стеку драйверов(устройств) LPT ??? А насчет использования звуковой карты - отпадает, мое устройство подсоединяется к LPT и принимает звук в цифровом формате.
Может для тебя эта фраза и имеет смысл, но для меня - в ней 0 информации. Цифровые устройства (стандартные)напрямую к LPT не подсоединяются. Там формат и интерфейс другие. Что касается работы с LPT : я разбирался тут с тем, как работать с портами SVGA и с удивлением обнаружил, что фри-драйвер porttalk прекрасно с этим справляется и ни с чем не конфликтует в ВИН2000. Если ты не собираешься паралельно с записью звука печатать на принтер ( я видел такие сканеры например...), то по-моему porttalk - лучший выбор, хотя вопрос синхронизации остается. +++++++++++++++++++++++++++++++++ Не надо вводить людей в заблуждение красивыми словами. Напиши : есть самодельное устройство или самодельный интерфейс под порт LPT. Тогда тебе ответят. И лучше тогда перейти в тему Electronics. Win32 подразумевает соблюдение стандартов и covox к ним не относится.
valterg Не надо вводить людей в заблуждение красивыми словами. Напиши : есть самодельное устройство или самодельный интерфейс под порт LPT. Тогда тебе ответят. Ну зачем же так? У меня и в мыслях никогда нет такого, чтобы вводить людей в заблуждение. Я просто относительно недавно стал клиентом форумов И лучше тогда перейти в тему Electronics. Win32 подразумевает соблюдение стандартов и covox к ним не относится. Не понял, что такое covox? И какие стандарты ты имеешь ввиду? А насчет темы - мне кажется, что ты немного ошибаешься. Но, в любом случае, благодарю тебя за проведенную со мной дискуссию!