На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Полное имя аудиоустройства
    Как известно, szPname в WAVEOUTCAPS содержит только 31 букву имени аудиоустройства. Я же хочу получить полное имя. В инете нахожу инфу только лишь об использовании расширенного формата WAVEOUTCAPS2 с последующим получением имени из реестра. Если я правильно понимаю, то NameGiud из WAVEOUTCAPS2 должно содержать GUID с именем ключа реестра в разделе HKLM\System\CurrentControlSet\Control\MediaCategories. Однако на практике всё иначе: NameGiud содержит нули, а значения ProductGuid, как и ManufacturerGuid совпадают на всех девайсах.
    ExpandedWrap disabled
      type
        TWAVEOUTCAPS2 = packed record
          C: TWAVEOUTCAPS;
          ManufacturerGuid: TGUID;
          ProductGuid: TGUID;
          NameGuid: TGUID
        end;
       
      var
        i: Integer;
        DevOut: TWAVEOUTCAPS2;
       
      begin
        for i := -1 to waveOutGetNumDevs-1 do
        begin
          FillChar(DevOut, SizeOf(DevOut), 1);
          if waveOutGetDevCaps(i, @DevOut, SizeOf(DevOut)) = MMSYSERR_NOERROR then ComboBox1.Items.Add(DevOut.C.szPname + ' / ' + GUIDToString(DevOut.NameGuid))
        end;
        ComboBox1.ItemIndex := 0
      end;

    Может, я что-то не так делаю, хотя вряд ли.
    Какие есть ещё способы? Рабочие...
      Подниму тему.
      Цитата
      WAVEOUTCAPS содержит только 31 букву имени аудиоустройства. Я же хочу получить полное имя.

      Как выглядит полное имя?
        Я даже ещё раз её подниму :)
        Судя по всему, "Микрофон (Realtek High Definition Audio)", а я вижу только "Микрофон (Realtek High Definiti" и соответственно "Динамики (Realtek High Definiti".

        И заодно: как можно выцепить названия из настроек "Звука", см. скрин.
        Прикреплённый файлПрикреплённый файл2017_09_05_19_20_15.png (33,61 Кбайт, скачиваний: 454)

        Добавлено
        Вообще, неплохо бы эту тему перенести в раздел "Программирование звука" :whistle:

        Добавлено
        Вот это тоже интересует: https://forum.sources.ru/index.php?showtopic=411222
          Вот ещё Adobe Audition, видит полные имена!
          Прикреплённый файлПрикреплённый файл2017_09_05_19_41_48.png (59,86 Кбайт, скачиваний: 486)
            Jin X
            На мастерахдельфи тему поднимали. Сошлись на том что полные названия вытаскивать через DX. А если делаете проигрыватель на WINMM то тогда вытаскиваете как есть и нечётким поиском сравниваете с полными названиями. И да порядок может отличаться.
              Pavia, я тоже уже успел до этого додуматься: DirectSoundEnumerate/DirectSoundCaptureEnumerate :)
              Вопрос только вот в чём: одинаков ли список устройств (имён, их кол-во... и порядок, кстати, тоже) в MME и DirectSound?

              Добавлено
              По моим экспериментам (домашним) как будто бы да (все 3 вопроса), но есть ли гарантия, что и у других так же?
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0247 ]   [ 20 queries used ]   [ Generated: 24.04.24, 01:44 GMT ]