Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Воспроизведение Аудио-CD используя MCI 
:(
    Опции темы
AndreySol
Дата 14.5.2010, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Код

MCI_PLAY_PARMS lpPlay = {0};
lpPlay.dwFrom = 1;
lpPlay.dwTo = 20000;
lpPlay.dwCallback = MAKELONG((WORD)this->GetSafeHwnd(), 0); // устанавливаем окно, куда будут приходить сообщения от MCI
mciSendCommand(idCD, MCI_PLAY, MCI_NOTIFY | MCI_FROM | MCI_TO, (DWORD) (LPMCI_GENERIC_PARMS)& lpPlay);

а в PreTranslateMessage окна, которое указали в dwCallback будем смотреть какие из 4-х предусмотренных сообщений к нам придут:
Код

PreTranslateMessage(MSG* pMsg) 
{
    if(pMsg->message == MM_MCINOTIFY)
    {
        if((LONG)pMsg->lParam == idCD)
        {
            if((WPARAM)pMsg->wParam == MCI_NOTIFY_SUCCESSFUL)
            {
                MessageBox("MCI_NOTIFY_SUCCESSFUL","",0);
            }

            if((WPARAM)pMsg->wParam == MCI_NOTIFY_ABORTED)
            {
                MessageBox("MCI_NOTIFY_ABORTED","",0);
            }

            if((WPARAM)pMsg->wParam == MCI_NOTIFY_FAILURE)
            {
                MessageBox("MCI_NOTIFY_FAILURE","",0);
            }

            if((WPARAM)pMsg->wParam == MCI_NOTIFY_SUPERSEDED)
            {
                MessageBox("MCI_NOTIFY_SUPERSEDED","",0);
            }
        }
    }
}
и получается что все вроде нормально воспроизведется, но вот сообщений никаких не будет. Хотя в MSDN сказно:
A device returns the MCI_NOTIFY_SUCCESSFUL flag with MM_MCINOTIFY when the action for a command finishes. For example, a CD audio device uses this flag for notification for the play (MCI_PLAY) command when the device finishes playing.
Правда, если прервать текущую команду како-либо другой (к примеру паузу сделать), то выскакивает мессага "MCI_NOTIFY_ABORTED". Значит MCI все-же генерит какие-то сообщения, вот только почему нет сообщения по окончанию воспроизведения выбранного куска данных ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.