Я столкнулся с сценарием в своем проекте, где я создаю окно MCI для воспроизведения некоторых видеороликов, в которых он не воспроизводится правильно, когда есть переданный ему путь к файлу, который больше, чем 128 символов.MCIWindow с длинным пути к файлу
Я создаю новый MCIWindow так:
m_window = MCIWndCreate(_owner, GetModuleHandle(NULL), WS_CHILD|MCIWNDF_NOERRORDLG|MCIWNDF_NOPLAYBAR|MCIWNDF_NOMENU, shortPath.c_str());
и он будет позже получить играл, выполнив ниже:
bool VideoMedia::play()
{
logStream().I() << "[VideoMedia::play] start\n";
if (MCIWndPlay(m_window) != 0)
{
logStream().E() << "VideoMedia::play " << "\n";
}
logStream().I() << "[VideoMedia::play] end\n";
return true;
}
В том случае, когда я создаю m_window
используя shortPath
с длиной < 128, все отлично работает с показами и играми в средствах массовой информации. Однако, с shortPath
с длиной> 128, медиа не воспроизводится. Интересно отметить, что в приведенной выше функции VideoMedia::play()
журналы показывают, что вызов MCIWndPlay()
выполняется отлично, поскольку журнал ошибок внутри if не отображается.
Мне интересно, если MCIWnd не может поддерживать длинный путь к файлу, хотя я не видел ничего в документации, чтобы предположить, что это так?