Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись с воспроизведением, Одновременно 
:(
    Опции темы
uvsoft
  Дата 15.7.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 4.2.2003

Репутация: нет
Всего: нет



Привет,

вопрос по DirectSound. необходимо записывать звук и одновременно записаное воспроизводить... как правильно реализовать такой алгоритм?

Спасибо. 
--------------------
Старый глюк лучше новых двух.
PM MAIL ICQ   Вверх
AndreySol
Дата 16.7.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



На DirectSound не знаю, могу на DirectShow пример дать. 
PM MAIL   Вверх
uvsoft
Дата 17.7.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 4.2.2003

Репутация: нет
Всего: нет



спасибо. давай, может по аналогии получится...) 
--------------------
Старый глюк лучше новых двух.
PM MAIL ICQ   Вверх
AndreySol
Дата 18.7.2006, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Держи тест-проект, VC 6.0 

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  Record.rar 31,81 Kb
PM MAIL   Вверх
uvsoft
Дата 19.7.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 4.2.2003

Репутация: нет
Всего: нет



я делал следующим образом, есть два буфера - записи и воспроизведения. в буфере записи ставим некоторое число (с заданным шагом) точек извещения о достижения данной позиции. начинаем записывать.... буфер воспроизведения не работает. при достижении каждой точки пишем в соответствующую позицию буфера воспроизведения, буфер воспроизведения запускаем, например, для полной увененности о неналожении со второй точки... и так далее... проблема в том что задержку нужно свести к минимуму, пробовал уменьшать шаг... но с некоторого предела при воспроизведении появляются странные шумы и всякая гадость, хотя задержа до сих пор прилично ощутима... так вот вопрос может существуют какие-нибудь алгоритмы борьбы с этими задержками... может есть какие-нибудь фондумантальные доки на эту тему?... 
--------------------
Старый глюк лучше новых двух.
PM MAIL ICQ   Вверх
AndreySol
Дата 23.7.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Насчет доки не подскажу, а вообще работая с подобной темой в DirectShow заметил - встроенные аудиокарты видно не сильно дружат с полным дуплексом, поэтому такие вещи как одновременная запись с воспроизведением записываемого частенько сопровождаются всеякими задержками, заиканиями и т.п. 
PM MAIL   Вверх
uvsoft
Дата 24.7.2006, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 4.2.2003

Репутация: нет
Всего: нет



да, я тоже заметил... но ведь все зависит от алгоритма перемещения звука между буферами, можно добиться почти идеального звучания (без задержек и без помех), должен быть всеми признанный алгоритм оптимального выполнения данной операции... самое интересное, что в примере из DXSDK FullDuplex, демонстрируещем как это должно быть, задержка порядка секунды... да и логика там перегонки информации из одного бефера в другой по-моему оставляет желать лучшего...

еще нашел один интересный пример на VB, так там тикает таймер и по каждому тику создает новый буфер (если нет свободных) для вновь прибывших данных в буфер захвата и сразу начинает его проигрывать (не зациклено ессно), как только буфер проигрывается полностью - считается свободным и может принимать новые порции звука. 
--------------------
Старый глюк лучше новых двух.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.