Класс видеоредактора Android

Я пытаюсь создать приложение для редактирования видео для Android. Я заметил, что в источниках SDK есть ряд классов в пакете «android.media.videoeditor», которые, похоже, делают то, что мне нужно; Однако, когда я пытаюсь импортировать их в свой Java-проект, я не могу, потому что в соответствии с Eclipse их не существует! Я проверил содержимое «android.jar» и, конечно же, классы отсутствуют.

Один из классов в этом пакете – MediaArtistNativeHelper.java – использует JNI для вызова любых собственных методов, которые ему нужны, которые реализованы на C ++ из того, что я могу сказать (означает ли это, что мне нужно их отдельно создавать?)

Мой вопрос: как я могу использовать эти классы в своем проекте?

Я разрабатываю приложение, используя Eclipse на Mac.

Пакет android.media.videoeditor является внутренним / скрытым пакетом , поскольку Javadoc над его классами / интерфейсами содержит аннотацию {@hide} или @hide.

Вы не можете использовать его из своего приложения, и, как вы видели, API отсутствует в android.jar, который содержит общедоступный API. FYI javadoc пакета можно увидеть здесь .

Для добавления медиафункций в ваше приложение вместо этого используйте пакет android.media , который:

Предоставляет классы, которые управляют различными медиа-интерфейсами в аудио и видео.

Медиа API используются для воспроизведения и, в некоторых случаях, для записи медиафайлов. Сюда входит аудио (например, воспроизведение MP3-файлов или других музыкальных файлов, мелодий, игровых звуковых эффектов или DTMF-тонов) и видео (например, воспроизведение видео, передаваемого по сети или из локального хранилища).

Другие специальные классы в пакете предлагают возможность обнаруживать лица людей в Bitmaps (FaceDetector), управлять маршрутизацией звука (к устройству или гарнитуре) и контролировать сигналы, такие как мелодии звонка и вибрации телефона (AudioManager).

Содержимое android.jar, показывающее, что содержит пакет android.media, содержит:

(Взято из adt-bundle-linux / sdk / platform / android-17 /android.jar)

Введите описание изображения здесь

Внутренние и скрытые пакеты не могут быть доступны во время компиляции, потому что у android sdk их нет.

Для этого нет легкой работы. Однако вы можете попробовать этот учебник http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

В этом руководстве объясняется, как извлечь «полный» файл android.jar с устройства, чтобы вы могли получить скрытые пакеты во время компиляции. Когда у вас есть «скрытые» пакеты во время компиляции, вы можете создать приложение с ними. Это может звучать как серебряная пуля, но она имеет серьезные недостатки. Как только вы используете нестандартные API, все ставки отключены. Если «скрытые» пакеты должны были быть изменены / изменены в будущих обновлениях ОС, это нарушит ваш продукт. В производственной среде этот подход является нарушителем транзакций, но для приложений, разработанных для личного / академического использования, это может быть ваша задача.

Примечание. Я лично не пробовал это, но нашел его когда-нибудь назад, столкнувшись с подобной проблемой с вашей (мой ответ был в другом скрытом пакете).