关于MCI播放AVI视频的问题

最近想利用mciSendCommand函数播放avi格式的视频,但是遇到了一些问题。

在执行播放时,返回错误代码276,返回文本信息是设备驱动程序尚未准备就绪。 如下图:

查了一下百度,按照百度所说,system.ini中如果安装了驱动,mci段会有相应的设置,然而我的mci段什么都没有。


初步确定,需要mciavi.drv驱动,但是我下载了却不知道怎么安装,我是Win10 64位系统。

希望大神为我解答,我该如何解决这个问题。。或者推荐一些可以播放avi视频的库,可以实现从指定帧(时间)播放,也行,opencv除外。。

下面是我的代码:
void Video::test()
{
        MCI_OPEN_PARMS OpenParms;
        UINT wDeviceID;
        DWORD opReturn;
        wchar_t* error[256];

        QString file = "test.avi";
        QString deviceType = "avivideo";
        LPCWSTR FileName = reinterpret_cast<const wchar_t *>(file.utf16());
        LPCWSTR dt = reinterpret_cast<const wchar_t *>(deviceType.utf16());
        OpenParms.lpstrDeviceType = dt;
        OpenParms.lpstrElementName = FileName;

        opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD_PTR)&OpenParms);
        if (opReturn == 0)
                wDeviceID = OpenParms.wDeviceID;
        else {
                mciGetErrorString(opReturn, (LPWSTR)error, 256);
                QString text = QString::fromStdWString((LPWSTR)error);
                qDebug() << opReturn << " " << text;
                wDeviceID = NULL;
                return;
        }
        MCI_PLAY_PARMS PlayParms;
        // 指定从什么地方(时间)播放
        PlayParms.dwFrom = 0;
        opReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_TO, (DWORD_PTR)&PlayParms);
        mciGetErrorString(opReturn, (LPWSTR)error, 256);
        QString text = QString::fromStdWString((LPWSTR)error);
        qDebug() << opReturn << " " << text;
}

已解决

为什么下载了不知道怎么安装呢?问题在哪里啊

为什么下载了不知道怎么安装呢?问题在哪里啊

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632