Какие форматы мультимедиа поддерживаются в Android?

Я новичок в Android, и я учусь. Например, большинство моих старых музыкальных файлов были файлами FLV и SWF, которые мой телефон и планшет не воспроизводили, и я не могу получить расширения для Chrome, чтобы воспроизводить их.

Файловый менеджер на моем планшете отлично воспроизводит файлы MP4, хотя я не могу создать список воспроизведения, как в VLC. Я попробовал VLC для Android, и он ничего не работает.

Я еще не пробовал свои файлы WEBM. Мне просто интересно, что поддерживается в Android 4+?

Это зависит от вашего конкретного устройства.
Как сказал Мэтью, это зависит от вашего устройства, но вы можете попробовать MX player, который поддерживает кодеки для разных форматов файлов.

Ответы (1)

Как заметил Мэтью Рид , список поддерживаемых медиаформатов зависит от устройства. Более или менее, на самом деле это относится к приложению видеоплеера по умолчанию, которое есть на вашем устройстве.

Я не знаю приложения, которое может отображать список типов MIME, поддерживаемых установленным приложением, так что здесь вы можете использовать командную строку. Убедитесь, что вы настроили включена отладка по USB и устройство подключено к ПК.

Примечание . Мне нужен root-доступ для доступа к «dumpsys» на Android 4.2.1, но Kitkat и Lollipop разрешают доступ к нему без root-доступа.

  1. Сначала вам нужно будет определить, какое приложение (предустановленное) в вашей системе отвечает за воспроизведение видео.

    На моем устройстве под управлением Android 4.2.1 эту работу выполняет приложение Галерея (не удивляйтесь, оно даже управляет камерой как отдельным приложением, не говоря уже о самой Галерее). Имя его пакета com.android.gallery3d.

    Существует множество способов найти имя пакета приложения . Вы можете использовать такие приложения, как App Browser , Elixir 2 , OS Monitor , ES File Explorer и так далее. Также см. Просмотр полного имени пакета приложения?

    Вы также можете использовать командную строку. Запустите приложение, имя пакета которого вы хотите определить, и оставьте его на переднем плане. На ПК введите команду:

    adb shell dumpsys window | grep mCurrentFocus
    

    Вы увидите что-то вроде:

    mCurrentFocus=Window{41d5fd10 u0 com.japanesecrackers.appbrowser/com.japanesecrackers.appbrowser.activities.AppDetailsActivity}
    

    com.japanesecrackers.appbrowserздесь имя пакета. Часть строки после /— это активность на переднем плане.

    Обратите внимание: если вы не можете найти приложение OEM-видеоплеера в разделе «Настройки» → «Приложения» → «Все приложения» , то, скорее всего, видеоплеер — это просто действие приложения. В этом случае просто воспроизведите видеофайл, а затем выполните указанную выше команду.

  2. Теперь, когда у нас есть имя пакета <PKG_NAME>, введите команду:

    adb shell dumpsys package <PKG_NAME> | sed -n '/Full MIME Types:/,/Base MIME Types:/p' | grep -o "video/[a-zA-Z0-9].*" | awk -F 'video/' '{print $2}' | tr -d ':'
    

    Это дало мне вывод:

    ави
    3gpp2
    mpeg4
    3gpp
    3gp
    вебм
    mp4
    

    Это была слишком локализованная команда, и, скорее всего, она ничего не даст вам для вашего конкретного приложения. Ключевая команда adb shell dumpsys package <PKG_NAME>. Он содержит всю информацию, необходимую для сортировки. Типы MIME перечислены между строками со строкой Full MIME Types:и Base MIME Types:соответственно.

    Мне больше не нужно тебе ничего говорить. Теперь вы сможете легко определить форматы мультимедиа.

  3. Альтернативно,

    1. Возьмите APK приложения,

    2. Выдержка AndroidManifest.xmlиз АПК. APK — это просто файл архива, поэтому извлечь его несложно.

    3. Откройте файл XML (двоичный) на Android с помощью Axel или на ПК с помощью AXMLPrinter (требуется среда выполнения Java).

    Браузер приложений может отображать манифест приложения, не требуя отдельного XML.

    Вы должны искать строки, содержащие строку android:mimeType=. Например, для MX Player соответствующие строки, которые я видел, были такими:

    андроид: mimeType = "видео/*"
    андроид: mimeType = "*/rmvb"
    андроид: mimeType = "*/avi"
    андроид: mimeType = "*/mkv"
    android:mimeType="приложение/sdp"
    android:mimeType="приложение/mp4"
    android:mimeType="application/mpeg*"
    android:mimeType="приложение/ogg"
    android:mimeType="приложение/x-ogg"
    android:mimeType="application/vnd.rn-realmedia*"
    android:mimeType="приложение/3gpp*"
    android:mimeType="application/vnd.3gp*"
    android:mimeType="application/vnd.dvd*"
    android:mimeType="application/vnd.dolby*"
    android:mimeType="application/x-mpegURL"
    android:mimeType="application/vnd.apple.mpegurl"
    android:mimeType="application/x-quicktimeplayer"
    android:mimeType="application/x-shockwave-flash"
    андроид: mimeType = "видео/*"
    андроид: mimeType = "*/rmvb"
    андроид: mimeType = "*/avi"
    андроид: mimeType = "*/mkv"
    android:mimeType="приложение/sdp"
    android:mimeType="приложение/mp4"
    android:mimeType="application/mpeg*"
    android:mimeType="приложение/ogg"
    android:mimeType="application/vnd.rn-realmedia*"
    android:mimeType="приложение/3gpp*"
    android:mimeType="application/vnd.3gp*"
    android:mimeType="application/vnd.dvd*"
    android:mimeType="application/vnd.dolby*"
    android:mimeType="application/x-mpegURL"
    android:mimeType="application/vnd.apple.mpegurl"
    android:mimeType="application/x-quicktimeplayer"
    android:mimeType="application/x-shockwave-flash"
    андроид: mimeType = "аудио/*"
    android:mimeType="приложение/флак"
    android:mimeType="приложение/x-flac"
    android:mimeType="приложение/обезьяна"
    android:mimeType="приложение/x-обезьяна"
    

Google Chrome и Firefox могут воспроизводить WEBM и MP4. Для FLV и SWF лучше всего найти стороннее приложение. И вам нужно погрузиться в Play Store и в Интернете. Существует множество приложений, которые могут воспроизводить различные форматы мультимедиа или позволяют создавать списки воспроизведения или предоставляют лучшие возможности управления файлами.

Веселиться!

Обратите внимание , что некоторые кодеки, такие как H265, требуют большой обработки для декодирования данных, поэтому отсутствие выделенного графического процессора или процессора средней или высокой мощности может привести к прерывистому воспроизведению видео или вообще к отсутствию воспроизведения.