Re[4]: Как определить уровень сигнала на входе звуковой карт
От: Аноним  
Дата: 17.03.04 04:30
Оценка:
Я взят TMediaPlayer.
Обернул его, сделал для Create параметром формат файла (например PCM-22кГц-8бит), создаю временный пустой файл в этом формате, беру его МедиаПлэйером, начинаю писать, в конце записи меняю имя файла на нужное, сохраняю... Все.
Предельно упрощенно.

Но раньше от меня требовалось быстренько дать только 4 функции (Record, Pause, Resume, Stop). Их вызывали снаружи внешней проограммой.
Теперь решили внедрить все в мой объект (как бы диктофон из него сделать).
Теперь мне нужно при Create, начинать слушать Line in карты и заканчивать при Free.

Я пробовал миксер. Не получилось.
Пробовал взять TMediaPlayer.deviceID и посмотреть на него, как в МСДН рекомендуют:
        flags := (MCI_WAIT OR MCI_STATUS_ITEM);
        mciStatus.dwCallback := 0;
        mciStatus.dwTrack := 0;
        mciStatus.dwItem := MCI_WAVE_STATUS_LEVEL;
        mciResult := MciSendCommand(mpRecorder.deviceID, MCI_STATUS, flags, DWORD(@mciStatus));
        ShowMessage(IntToStr(mciStatus.dwReturn));

Выдает постоянное неизменяющееся значение.

Видемо я где-то что-то явно не понимаю и не так делаю.

Блин.
А я пока не сдвинулся... Мне тут уже и DirectX рекомендовали (DirectShow — IAMCrossBar)

С уважением и признательностью за ответы.
Allock
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.