На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование звука"
0) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с записью, обработкой, воспроизведением звука. Перед созданием темы подумайте, не будет ли она уместнее в разделах Разработка и тестирование программ, Наши исходники, а особенно Разовые заказы и подработки
1) На Раздел распространяются все Правила форума.Огромная просьба с ними внимательно ознакомиться.
2) Запрещается давать бессмысленные ответы вроде: "Снеси Мастдай", "ХП рулит", "Поставь Линукс" и т.д.
3) Запрещается создавать темы, в которых Вы намереваетесь получить ссылку на кряки, серийники и т.п. Также запрещено любое обсуждение p2p (peer-to-peer) сетей (BitTorrent, eDonkey и т.д.).
4) Реклама всякого рода пресекается беспощадно.
5) Используйте тэг [CODE] для выделения кода программы (непременно с указанием языка программирования - выбрать из списка. В противном случае бессмысленно!). Уважайте тех, кто будет читать ваш код!
6) Если решение вашей проблемы найдено, то не забываем помечать тему специальной функцией "Вопрос решён". Вам всего лишь требуется при написании последнего ответа поставить одну единственную галочку прямо над формой ответа.
7) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе

8) Если не прикрепляются/не скачиваются файлы, читаем Не прикрепляется / не скачивается файл. Любые обсуждения в данном разделе проблем с приложением файлов считаются оффтопиком! Со всеми вытекающими.

9) NEW! Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно. Попытки накрутки количества тематических сообщений за счёт поднятия древних неактуальных тем ("некрофилия") будут наказываться по велению левой пятки модераторского состава (см. пп.12, 13 Правил)



Нарушение Правил может повлечь наказание со стороны модераторов.



user posted imageFAQ Раздела user posted imageПоиск в Разделе user posted imageMSDN Library Online | Ваше мнение о модераторах: user posted imageBarazuk user posted imageRikkie
  
> Как проверить наличие звука, издаваемого сторонней программой
    Уважаемые коллеги! Кто может подсказать решение? Вопрос в следующем. Есть некоторое (неопределенное) количество программ (не моих), каждая из которых что-то там воспроизводит. Надо из моей программы определить, звучит ли что-нибудь на компе в данный момент. Просто BOOL - да или нет. Язык C++ или Delphi. Долго искал в инете, не нашел. Помогите, люди добрые, если кто что знает по существу. Заранее спасибо все откликнувшимся.
      Цитата
      звучит ли что-нибудь на компе в данный момент. Просто BOOL - да или нет.

      Решается записью звука с выхода звуковой карты(любым способом), вычислением уровня сигнала и принятием решения(того самого BOOL).
      Как узнать, звучат ли конкретные программы(какая из программ звучит в данный момент) - без понятия.
      Сообщение отредактировано: Prince -
        Добавлю свою пару копеек:
        Проверить надо все звуковые карты установленные на компьютере.
        Также надо проверить системную пишалку.
          Спасибо, но мне не надо знать, звучит ли конкретная программа. Мне надо знать, звучит ли комп вообще. Если можно, примерчик записи звука с выхода звуковой карты киньте, я с программированием мультимедиа раньше не сталкивался. Карта однозначно одна.
            FFFFFFFFF1, вопросов типа "я раньше не сталкивался с програмированием мультимедиа, киньте примерчик записи(воспроизведения)", и подобных, на форуме не просто много, а очень много. Уж сколько тех примерчиков накидали, а вопросы не прекращаются.
            Почитаете темы в этом разделе, воспользуетесь поиском, и вы их найдёте, уверяю.
            Загляните также в FAQ, есть книги по програмированию мультимедиа, с подробными объяснениями и примерами.
              Уважаемый Prince! Если мне нечего (или не хочется) отвечать, я оставляю свои нравоучения при себе, и просто не отвечаю. Я просил конкретной помощи у людей, которые разбираются в вопросе, а показать пальцем "вон там ищи" не требует большого опыта. Я на Вашем месте на любой вопрос отвечал бы с тяжелым вздохом "Ищи на форуме". Я повторяю свою просьбу (не для Принца) - если можете, дайте конкретный пример по теме. Если не можете - не пишите нравоучений. Заранее благодарю всех, кто может мне помочь.
                Это было не вовсе не нравоучение, а настоящий добрый совет. Но как хотите.
                  Спасибо. Извините за резкость.

                  Добавлено
                  Пожалуйста, помогите найти буфер аудиоданных. Код взят из реального примера рекордера.

                  MCI_RECORD_PARMS mciRecord;
                  DWORD dwrc;
                  mciRecord.dwCallback = (DWORD)hwnd;
                  if(bOpen)
                  {
                  mciRecord.dwFrom = iFileSize;
                  dwrc = mciSendCommand(wDevID, MCI_RECORD, MCI_NOTIFY | MCI_FROM, (DWORD)(LPVOID)&mciRecord);
                  }
                  else
                  {
                  dwrc = mciSendCommand(wDevID, MCI_RECORD, MCI_NOTIFY, (DWORD)(LPVOID)&mciRecord);
                  }
                  if(dwrc) MCIError(dwrc);

                  Я так понимаю, что используется внутренний буфер MCI. Мне надо его периодически опрашивать. Как мне до него добраться?
                    Возможно, никак, хотя 100% гарантии дать не могу. MCI - это относительно высокоуровневая обертка, в частности, над API audio multimedia, заточенная для написания аудио/видео плееров/рекордеров.
                    А более низкоуровневые, с доступом к аудиоданным :
                    audio multimedia - Работа со звуком с помощью MMSystem (последняя страница)
                    DirectSound - Захват звука DirectSound
                    Интерфейсы, как и MCI, старые, но 7-ой, конечно, продолжают поддерживаться.

                    Ещё библиотеки BASS, PortAudio.
                    И напоследок, CoreAudio в Win-7.
                    Но это уже без меня.
                    Сообщение отредактировано: Prince -
                      Спасибо, Prince. Еще раз извините за резкость.
                        Проехали. Просто уж столько раз эта инфа, на разные лады, в разных темах повторялась...но не все читают вопросы предшественников.
                        Формулы для расчёта уровня сигнала andriano приводил: Границы желтой и красной зон для логарифмической шкалы звука (VU Meter), Какие они?.
                        А ещё вы столкнётесь(или не столкнётесь) с необходимостью управления линиями микшера из вашей программы. За это отвечают Audio Mixer Functions.
                        Т.е., это в том случае, если вы остановитесь на "старых" виндовых интерфейсах, и [возможные,т.е., их может и не быть] подводные камни совместимости с 7-й или кроссплатформенность вас не волнует(с другой стороны, не будет проблем обратной совместимости, так как wavein и directsound будут фунциклировать на 7-ке, XP и 2000-й(мало ли)).

                        Возможно, вам таки будет проще(или удобней, или целесообразней) воспользоваться BASS, в комплекте с библиотекой поставляются необходимые заголовочные файлы, кучка примеров на разные случаи жизни, на С , Асме и Delphi, есть справочный файл. :-?
                        Сообщение отредактировано: Prince -
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0299 ]   [ 15 queries used ]   [ Generated: 25.04.24, 10:44 GMT ]