Как мне создать собственный медиаплеер для воспроизведения пользовательского кодека в Android?

n00b здесь (первый проект Android). Мне предоставили специальный видеокодек, интегрированный со сборкой прошивки Android. Это .so файл, содержащий класс, наследуемый от MediaPlayerInterface, а также настраиваемую реализацию MediaPlayerService для возврата экземпляров настраиваемого класса кодека из фабричной функции create () для соответствующих типов файлов.

Я хочу использовать этот кодек как часть приложения видеоплеера, которое можно установить на телефоны, не содержащие кодек в прошивке, поместив файл .so в мою папку libs / armeabi и вызвав его через JNI.

Из ответа на этот вопрос я понял, что это невозможно сделать в рамках MediaPlayer, и мне нужно создать новый медиаплеер с нуля. Для начала я реализовал пользовательский интерфейс на Java и настроил его для использования пользовательского представления (вместо VideoView), которое расширяет SurfaceView и использует экземпляр класса MediaPlayer для воспроизведения видео. Затем я заменил этот экземпляр MediaPlayer на собственный Java-класс медиаплеера. Я настроил интерфейс JNI, имитируя способ, которым это делает android_media_MediaPlayer.cpp, и вызвал класс MediaPlayer C ++ в коде JNI. Теперь мне нужно заменить , что на собственный класс медиаплеера C ++.

Здесь я начинаю сталкиваться с проблемами. Каков рекомендуемый подход для реализации кастомного плеера? Есть один? Есть ли какая-нибудь онлайн-документация для чего-либо из этого, кроме просмотра источника? Какую часть фреймворка я могу использовать и сколько мне нужно заново реализовать? Придется ли мне реализовать собственный эквивалент MediaPlayerService?

Приветствую любые советы.

14
задан Community 23 May 2017 в 11:54
поделиться