Android Dev - сторонние SDK Media Player или другие варианты? - PullRequest
4 голосов
/ 10 июня 2011

Я пишу приложение для мультимедийного веб-сайта Я часто бываю и столкнулся с проблемой.

После захвата URL-адреса видеопотока (h264, обернутого в контейнер mp4) и попытки воспроизвести его с помощью собственного видеопроигрывателя, происходит сбой.

Это на моем Moto Droid с 2.2 (BB) и 2.3 (CM7).Я протестировал приложение на своем Xoom (3.1 stock), и оно прекрасно работает.

У меня также была подруга, протестировавшая ее на ее Xperia Arc (насколько я знаю, запас 2,3), и она сработала для нее.Заставляет меня думать, что это проблема аппаратного декодера , поскольку я могу нормально воспроизводить поток с помощью RockPlayer's software decoder, но не могу использовать аппаратный.

Итак, у меня есть три вещи, которые я хочу найтиout:

  1. Поддерживает ли встроенный проигрыватель Android программное декодирование.если да, то как узнать, использует ли оно аппаратное или программное обеспечение и можно ли переключаться?
  2. Существуют ли медиаплееры 3-й части с готовыми SDK (бесплатно).
  3. Как я могупросто откройте видео в другом приложении, таком как Rock Player, так как я знаю, что оно работает.Когда я загружаю видео с помощью браузера, он спрашивает меня, какой видеопроигрыватель я хочу использовать. Как я могу получить это всплывающее окно в моем приложении, а затем отправить видео на него?

1 Ответ

0 голосов
/ 05 апреля 2014
  1. Да, Android предоставляет программный декодер h264, но он может быть недоступен в версии 2.2.Вы можете предпочесть программный кодек, см. Исходный код AOSP для stagefright :

    usage: stagefright [options] [input_filename] … -s(oftware) prefer software codec …

  2. ffmpeg имеет много производных и оболочек для Android, которые доступны с различными лицензионными ограничениями.

  3. Довольно просто запустить Intent, предназначенный для конкретного приложения.Вы можете использовать setComponent () , чтобы точно соответствовать деятельности, которая вам нужна.Лучший и более гибкий способ решения этой проблемы - создать пользовательский Chooser (см., Например, Пользовательская фильтрация намеренного выбора на основе имени установленного пакета Android ), чтобы пользователь мог выбрать, какого игрока он / она предпочитает.,С помощью пользовательского выбора вы можете решить скрыть некоторые обработчики, зарегистрированные в Action (например, не использовать системный проигрыватель в версии Android ниже 3.0).

...