Здесь много вопросов и множество вещей, которые вам нужно понять.
Прежде всего, сама логика ядра проигрывателя почти наверняка должна быть в нативном коде, чтобы предотвратить возможностьсборки мусора (GC).Во время GC все управляемые потоки приостанавливаются, и при воспроизведении видео или аудио это является проблемой.
Итак, это означает, что если вы хотите, чтобы ваше приложение было в управляемом коде (что нормально), то вам понадобится гибридное решение.Это означает, что вам нужно понять, и для этого приложения достаточно хорошо понять, как работает нативный код и как управляемый код взаимодействует с нативным кодом.
Теперь, если есть существующие библиотеки FFmpeg (я возьму вашу работудля этого я ничего не знаю о FFmpeg) тогда первое, что вам нужно сделать, это определить, есть ли у них версии, скомпилированные специально для Windows CE.Если этого не произойдет, вам придется определить, насколько сложно будет создать этот порт, и тот факт, что вы задаете этот вопрос, заставляет меня поверить, что создание порта такой величины будет очень трудным для вашего текущего навыка.set.
Если у них есть сборка для Windows CE, вам нужно понять, каков ее программный интерфейс.Если это классы C ++, то вы не можете напрямую вызывать это из управляемого кода, поэтому вы должны написать в нативном коде библиотеку «shim», которая предоставляет прямые точки входа C и которая сделает все выделения C ++и призывает вас.
Как только вы все это сделаете, вы можете посмотреть на задачу вызова интерфейса shim или библиотеки C из управляемого кода через Platform Invoke.
В основному вас много работы, и нет какой-либо определенной статьи, на которую я могу вам указать, которая проведет вас от одного конца к другому.Вот несколько ссылок, чтобы вы начали, хотя.Если вы полностью понимаете каждый из них, то у вас, вероятно, будет достаточно знаний для написания оболочки вокруг существующей реализации (необязательно для написания самой реализации ядра проигрывателя).