RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : MCI


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : yagiza, 2:5013/5.25
To : VicTor
Subj : MCI

> > Решил попробовать воспроизвести звук из ресурса, не используя MCI Play Resource. Для начала решил загрузить ресурс, открыть MMIO-хэндл, окрыть MCI-устройство, закрыть MCI-устройство, закрыть MMIO-хэндл, освободить ресурс. Но даже это у меня не получилось. Не удаётся открыть MCI-устройство :-(
> > Вот текст:
>
> А RTFM не пробовал делать?
> Там правда пример для воспроизведения MIDI-файла из памяти, но для WAVE не трудно переделать...
>
> В прочем различия можешь сам найти, вот текст:
>
> ---------->------------------
> {
> /* variable for IOProc */
> PMMIOPROC pIOProc;
> HMODULE hModMidiio;
>
> /* variables for memory file */
> MMIOINFO mmioInfo;
> CHAR UserBuffer[SIZE_OF_BUFFER];
> HMMIO hmmio;
>
> /* variables for MCI commands */
> MCI_OPEN_PARMS mop;
> MCI_PLAY_PARMS mpp;
>
>
> /* Open memory file. Provide midi-filled data buffer to MMIO, so
> * data buffer becomes file image in memory. Also specify that
> * the data will need to be translated.
> */
>
> mmioInfo.pchBuffer = UserBuffer; /* Filled with untranslated
> midi data */
> mmioInfo.cchBuffer = SIZE_OF_BUFFER; /* User-defined */
> mmioInfo.ulTranslate = MMIO_TRANSLATEDATA | MMIO_TRANSLATEHEADER;
> /* Need to translate data */
> mmioInfo.fccIOProc = mmioFOURCC( 'M', 'I', 'D', 'I');/* Data
> format */
> mmioMemInfo.fccChildIOProc = FOURCC_MEM; /* Storage type */
> hmmio = mmioOpen ( NULL, mmioInfo, MMIO_READWRITE );
>
> /* open midi device */
>
> mop.pszElementName = (PSZ) hmmiomem;
>
> mciSendCommand(
> 0, /* We don't know the device yet. */
> MCI_OPEN, /* MCI message */
> MCI_WAIT | MCI_OPEN_MMIO |
> MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE
> (DWORD) mop, /* Parameters for the message */
> 0 ); /* Parameter for notify message */
>
> /* play midi memory file for 1 second */
>
> mpp.ulFrom=0;
> mpp.ulTo=3000; /* default is MMTIME units (1/3000 second) */
> mciSendCommand(
> mop.usDeviceID, /* Device to play the data */
> MCI_PLAY, /* MCI message */
> MCI_WAIT |
> MCI_FROM | MCI_TO, /* Flags for the MCI message */
> (ULONG) &mpp, /* Parameters for the message */
> 0 ); /* No parm necessary */
Спасибо, помогло!

Mon 01 Mar 2004 07:12 Links (2.1pre14; OS/2 1 i386; 132x50)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.