Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

AcmStreamClose

MMRESULT acmStreamClose( HACMSTREAM has, DWORD fdwClose );

Возвращаемое значение

В случае успешного завершения возвращает нулевое значение. В противном случае возвращает одно из следующих значений:

  • ACMERR_BUSY — поток преобразования не может быть закрыт, поскольку продолжается асинхронное преобразование данных.

  • MMSYSERR_INVALFLAG — при вызове данной функции установлен, по крайней мере, один недопустимый флаг.

  • MMSYSERR_INVALHANDLE — использован недопустимый дескриптор.

Аргументы

  1. has — дескриптор открытого процесса преобразования, который должен быть закрыт.

  2. fdwClose — зарезервирован для дальнейшего использования. Должен иметь нулевое значение.

Примечание

Функция acmStreamClose закрывает поток преобразования ACM. Если функция успешно завершает свою работу, использование указанного в ней дескриптора недопустимо.

Описание данной функции содержится в файле заголовка msacm.h. При работе с данной функцией следует включить в проект библиотеку msacm32.lib

AcmStreamConvert

MMRESULT acmStreamConvert( HACMSTREAM has, LPACMSTREAMHEADER pash, DWORD fdwConvert );

Возвращаемое значение

В случае успешного завершения возвращает нулевое значение. В противном случае возвращает одно из следующих значений:

  • ACMERR_BUSY — дескриптор потока, определённый в переменной pash используется в настоящее время и не может использоваться совместно.

  • ACMERR_UNPREPARED — дескриптор потока, определённый в переменной pash в настоящее время не подготовлен функцией acmStreamPrepareHeader.

  • MMSYSERR_INVALFLAG — при вызове данной функции установлен, по крайней мере, один недопустимый флаг.

  • MMSYSERR_INVALHANDLE — использован недопустимый дескриптор.

  • MMSYSERR_INVALPARAM — при вызове данной функции, по крайней мере, один из её аргументов имеет недопустимое значение.

Аргументы

  1. has — дескриптор потока преобразования.

  2. pash — указатель на дескриптор потока, описывающий исходный буфер и буфер результата, используемые для преобразования. Этот дескриптор должен быть подготовлен заранее функцией acmStreamPrepareHeader.

  3. fdwConvert — флаги, используемые при преобразовании. Определены следующие значения:

  • ACM_STREAMCONVERTF_BLOCKALIGN — может быть осуществлено преобразование только целого числа блоков. Преобразованные данные заканчиваются на границе блока. Приложение должно устанавливать этот флаг для всех преобразований до тех пор, пока размер не преобразованных входных данных не станет меньше размера блока. В этом случае при проведении последнего преобразования этот флаг устанавливать не следует.

  • ACM_STREAMCONVERTF_END — поток преобразования ACM должен начать вывод аудио информации, содержащейся в его буфере задержки. Например, если в потоке преобразования определена операция эхо-фильтрации, то этот флаг инициирует вывод задержанного сигнала, микшируемых с выводимой в настоящей момент информацией. Этот флаг может быть установлен одновременно с флагом ACM_STREAMCONVERTF_START.

  • ACM_STREAMCONVERTF_START — поток преобразования ACM должен очистить содержимое своего буфера задержки. Этот флаг может быть установлен одновременно с флагом ACM_STREAMCONVERTF_END.

Примечание

Функция acmStreamConvert инициирует процесс преобразования в указанном потоке преобразования. Преобразование может производиться синхронно или асинхронно, в зависимости от типа открытого потока преобразования.

Перед вызовом функции acmStreamConvert следует вызвать функцию acmStreamPrepareHeader для подготовки к преобразованию исходного буфера и буфера результата.

Если в очередь ACM или драйвера был успешно помещён асинхронный запрос на преобразование, но впоследствии оказалось, что данное проведение преобразования невозможно, то в переменную cbDstLengthUsed объекта структуры ACMSTREAMHEADER записывается нулевое значение и этот объект посылается функции обратного вызова приложения.

Описание данной функции содержится в файле заголовка msacm.h. При работе с данной функцией следует включить в проект библиотеку msacm32.lib.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]