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?
Любые советы с благодарностью.