Как предотвратить отображение окна MCI? - PullRequest
2 голосов
/ 09 марта 2019

На основании превосходного ответа Как воспроизвести или открыть * .mp3 или * .wav звуковой файл в программе на С ++? пользователем @FarewellStackExchange (надеюсь, он все еще с нами), я реализовал функциональность для воспроизводить mp3 аудио с помощью интерфейса управления Windows Media (MCI) (см. https://docs.microsoft.com/en-us/windows/desktop/Multimedia/mci).

Но я также хочу, чтобы он воспроизводил аудио из видеофайла без показа видео. У меня есть проблема, потому что видео окно всегда отображается на короткое время (вспышка). Так что мой вопрос: кто-нибудь сейчас, как отключить / скрыть окно до команды play? Или кто-то знает другой путь, например не используете MCI?

Ниже приведен минимальный пример:

#include <windows.h>
#pragma comment(lib, "Winmm.lib")

void mciExample(void)
{
    mciSendString("open \"myVideo.wmv\" type mpegvideo alias mymp3", 0,0,0);
    //
    // now the device "mymp3" is created. The following command will play the video:
    //
    mciSendString("play mymp3 from 0", 0,0,0);
    //
    // The following command hides the window, but it is first briefly shown.
    // How to avoid that? Placing the command before the "play" command has no effect.
    //
    mciSendString("window mymp3 state hide", 0,0,0);
}
...