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


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : VicTor
To : Yagiza
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 */

/* close device */

mciSendCommand(
mop.usDeviceID, /* Device to play this */
MCI_CLOSE, /* MCI message */
MCI_WAIT, /* Flags for the MCI message */
(ULONG) NULL, /* Parameters for the message */
(ULONG) NULL ); /* Parameter for notify message */

}
----------<----------

Thu 26 Feb 2004 20:50 Mozilla 5.0 (compatible; MSIE 6.0; Windows NT 5.0)




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.