Итак, я записываю звук с помощью Delphi с помощью MCISendString. Код работает отлично с одним исключением. Я разрешаю пользователю задавать параметры, каналы, бит, частоту, а в Windows 7 это работает нормально. Теперь в Windows 10 я получаю файл mcierr_wave_inputsinuse.Delphi/MCI Эксклюзивное управление микрофоном
Если я уменьшу параметры до 1 канала, 8 бит, 8 кГц, он записывается штрафом. Все, что выше этого, и MCI отказывается от него. По моему устройству он должен идти 1 канал, 16 бит, 48k.
Я предполагаю, что микрофон используется. Кто-нибудь знает, как заставить программу Delphi взять эксклюзивный контроль, чтобы он мог использовать все возможности устройства?
Я немного поработал и не придумал ничего полезного.
Thanks
Вот код, который я использую.
MRet := mciSendString(PChar('RECORD mysound'), NIL, 0, Handle);
Он возвращает код результата 322. Я пробовал его с и без преобразования на PChar.
Похоже, что это связано с Cortana. Но поскольку нет возможности полностью отключить Cortana, получение эксклюзивного контроля является единственным возможным решением.
Я думаю, это Кортанно. Попробуйте отключить его. Вы не можете взять эксклюзивный контроль, если что-то еще уже контролирует. – Dsm
Это ... было одно удивительное предположение. Кажется, вы хотя бы частично правы. Я убил Cortana через диспетчера задач, и у меня не было жалоб, когда я увеличил настройки и попытался записать. Однако, похоже, я получаю другую ошибку mci в другом месте, которую мне придется исследовать. Нажатие на запись работает, но это всего лишь сохранение 44-байтового файла, что и было сделано до того, как я добавил начальные проверки ошибок mci. – uPrompt
Спасибо. Я бы выключил Cortana, нажав на Cortana и выключив его в настройках. Убить его менеджером задач может только временно - вы знаете, что такое Microsoft! – Dsm