Android x86 нет звука по hdmi

Обновлено: 07.07.2024

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

Согласно википедии HDMI это “High-Definition Multimedia Interface - интерфейс для мультимедиа высокой чёткости, позволяющий передавать цифровые видеоданные высокого разрешения и многоканальные цифровые аудиосигналы с защитой от копирования.”

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

Так появился HDMI, три основных преимущества которого: цифровой сигнал, выскокое разрешение (FullHD, 4K) и объединение аудио- и видео-кабелей в один. Сегодня HDMI это по сути стандарт для подключения разного рода мониторов, телевизоров и проекторов к видео-плеерам, компьютерам, игровым приставкам и подобной им техники. Поддержка HDMI есть и в Android, однако здесь намного больше нюансов его использования, чем с любой другой техникой.

Всего есть три основных проблемы:

  • Масштабирование. Если родное разрешение экрана устройства и разрешение телевизора/монитора не совпадают, то картинка будет растянута или сжата, что приведет к размытию изображения.
  • Поддержка в устройствах. Не многие знают, что отсутствие HDMI-порта в смартфоне или планшете не обязательно означает отсутствие поддержки HDMI как таковой;
  • Гашение экрана. При подключении смартфона или планшета к телевизору экран устройства будет продолжать гореть.

Это правильный подход, цель которого обеспечить максимальную производительность, но он имеет свои недостатки. В так называемых мини-ПК на базе Android эта проблема решается с помощью установки ядра, которое поддерживает подходящее разрешение, например HD или FullHD, в зависимости от родного разрешения телевизора/монитора, но на смартфоне/планшете так сделать не получится, потому что в результате “съедет” изображение на основном экране.

Вторая “проблема” заключается в том, что кроме стандарта HDMI существуют еще и стандарты SlimPort (все Nexus’ы начиная с пятого) и MHL, которые описывают способ передачи сигнала HDMI по USB-кабелю. На первый взгляд все просто, надо купить переходник MHL или SlimPort, один конец воткнуть в смартфон, а в другой воткнуть HDMI-кабель. На самом деле здесь есть свои подводные камни. Во-первых, смартфон должен явно поддерживать технологию MHL или SlimPort, иначе никакой переходник не заработает, как не заработает переходник MHL, воткнутый в смартофн с поддержкой SlimPort. Во-вторых, некоторые производители смартфонов нарочно делают свою реализацию MHL несовместимой с другими. В результате вполне стандартный MHL-переходник просто не работает и ему на замену приходиться покупать фирменный вчетверо дороже. Одна из таких компаний: Samsung.

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

Screen Standby имеет множество весьма полезных настроек, например умение отключать подсветку самостоятельно при втыкании HDMI-кабеля. Для этого достаточно включить опцию “Auto HDMI/MHL Detection” в разделе “HDMI Detection” (там же есть и настройки отключения при запуске приложения или помещения в док). Еще одна очень интересная функция, это перевод планшета в режим тачпада, когда на экране монитора появляется курсор, а экран планшета превращается в большой тачпад. Включается в меню “Settings - Touchpad setting - Use touchpad function”, но у меня эта функция не всегда работает, что предсказуемо, учитывая ограниченную поддержку моделей.

Поддержка HDMI в Android не идеальна, однако само ее наличие это прекрасная возможность на время превратить смартфон или планшет в медиасервер. А еще можно потратить 3000 рублей и приобрести мини-ПК, размером со флешку, которую достаточно воткнуть в телевизор чтобы превратить его в Smart TV.

Я настроил изображение Android-x86 (4.0-RC1-eeepc) в VirtualBox на Dell Latitude D820. Этот конкретный ISO не предназначен для ноутбука, но из всех доступных ISOs он работает лучше всего.

Я проработал некоторые проблемы, с которыми столкнулся (не имея ISO для моего устройства), но мне не удалось заставить звук работать. Учебник Android-x86 VirtualBox и другие онлайн-ресурсы рекомендовали мне использовать драйвер ALSA с SoundBlaster 16, но это не сработало.

Этот вопрос заставил меня взглянуть на некоторые из команд ALSA, чтобы увидеть, что я могу найти, но я ничего не добьюсь.

С драйвером ALSA и контроллером SoundBlaster я получаю следующее от alsa_ctl init

Это выглядело очень неправильно для меня, поэтому я переключился на Intel HD Audio, как и другой вопрос.

С ALSA драйвер и аудио-контроллер Intel HD я получаю следующее от alsa_ctl init

Хотя это выглядит немного более многообещающе, у меня все еще нет звука.

Поскольку Android-это в основном Linux, я думал, что смогу перевести решение Linux. Несколько веб-страниц имеют контент, похожий на этот, говорящий об изменении /etc/modprobe.d/alsa-base.conf и добавлении options snd-hda-intel model=CORRECT_MODEL , и это, по-видимому, помогает многим пользователям Linux. Однако это, по-видимому, неприменимо к Android. По крайней мере, для меня, так как у меня нет alsa-base.conf

Я так мало знаю об аудио и ALSA. Есть ли что-нибудь, что выпрыгивает из того, что у меня есть выше? Даже толчок в общем направлении был бы великолепен.

Наконец, я убедился, что мой звук работает вне виртуальной коробки. Моя первая мысль заключается в том, что, поскольку мой ноутбук может работать Linux со звуком, я должен быть в состоянии включить драйверы Linux в Android. В этом есть хоть какой-то смысл? К сожалению, я также не знаю, как это сделать.

4 ответа

Я создаю приложение Android с Libgdx. Звук работает довольно хорошо, если я запускаю программу в настольной версии, а также на эмуляторе. Когда я тестирую приложение на своем телефоне android (Galaxy S3), звука нет. Все остальное работает довольно хорошо на моем устройстве, за исключением звука.

У меня возникли проблемы с воспроизведением звуков на Android. Я добавил в свой проект следующий код: import playn.core.Sound; . @Override public void init() < Sound bg = assets().getSound(bg); bg.play(); . >Код работает так, как задумано, когда я запускаю mvn test -Pjava . Звук.

У меня были те же проблемы.

Я использовал VMWare для WhatsApp. И имел различные версии Android без звука. Настройка VMWare с HDAudio конфиг файле мода.

Всегда не показывал никаких приборов.

Я установил это приложение из Google Play " AlsaMixer (ROOT) " И эта версия мгновенно получила звук:

  • android-x86-4.3-20130725.iso
  • android-x86-4.4-RC1.iso

У меня была та же проблема.

Я продолжал искать init.sh , а потом понял, что мне нужно установить эту чертову штуку на диск, прежде чем с ней стоит возиться (она повторно анализируется при перезагрузке, и живой диск не сохраняется).

Поэтому я зацепил последние порты x86 и пролистал их, пока не нашел 4.2x без проблем. К сожалению, я потерял след того, что есть что, а хорошее-это просто vm.iso ?!

Короче говоря, звук отлично работает с этой сборкой, мне даже не нужно было ничего настраивать.

  • Вкладка Материнской Платы:
    • 4 ГБ RAM (половина Хоста RAM)
    • [x] жесткий диск (только boot устройство)
    • все остальное по умолчанию
    • 2 ядра
    • все остальное по умолчанию
    • Windows DirectSound
    • ICH AC97
    • все остальное по умолчанию

    У меня была аналогичная проблема с отсутствием звука в vbox. В вашем init.sh добавьте эту строку в конец материала alsa_amixer:

    alsa_amixer set PCM 100 unmute

    После того, как я узнал, что мой звук работает нормально.

    Я отправляю push-уведомление из firebase в мое приложение Android. но когда мое приложение находится в фоновом режиме, метод firebase onMessageReceived не вызывается, вместо этого firebase отправляет уведомление в систему для отображения уведомления в системном трее. уведомление появляется в.

    Я разработал игру в unity3d. В этой игре я дал возможность установить громкость звука, которая влияет только на мой игровой звуковой объект, это не связано с настройкой звука android. Но я просто хочу проверить, настроено ли мое устройство android на отключение звука или нет. Если настройка моего.

    Работа над phoenix os и androidx86 для исправления звука 1) Установите AlsaMixer apk 2) Открыть AlsaMixer 3) Поиск основной громкости воспроизведения и редактирование значения до 90

    Похожие вопросы:

    Я ищу некоторые ресурсы о разработке приложений android с использованием Android x86, так как у меня нет устройства android, а эмулятор слишком медленный, чтобы его можно было использовать. У.

    Мп=MediaPlayer.create(AlarmAlert.this, R.raw.clear); mp.seekTo(0); mp.start(); Я использую этот код в своем приложении, он работает, когда я пробую его в эмуляторе android. Размер приложения в.

    Мой вопрос почти идентичен этому вопросу . Я попробовал эти решения, но ни одно из них не сработало. Но я использую другой образ Android x86. Я использую изображение ICS (4.0-RC1) asus_laptop.

    Я создаю приложение Android с Libgdx. Звук работает довольно хорошо, если я запускаю программу в настольной версии, а также на эмуляторе. Когда я тестирую приложение на своем телефоне android.

    У меня возникли проблемы с воспроизведением звуков на Android. Я добавил в свой проект следующий код: import playn.core.Sound; . @Override public void init() < Sound bg = assets().getSound(bg);.

    Я отправляю push-уведомление из firebase в мое приложение Android. но когда мое приложение находится в фоновом режиме, метод firebase onMessageReceived не вызывается, вместо этого firebase.

    Я разработал игру в unity3d. В этой игре я дал возможность установить громкость звука, которая влияет только на мой игровой звуковой объект, это не связано с настройкой звука android. Но я просто.

    Я создал VM на основе этого урока, Как создать эмулятор Android в Windows, чтобы использовать его в качестве эмулятора android для Eclipse. Я взял последнюю версию Iso The Android-x86 4.4-RC1.

    Мое приложение android использует библиотеку pjsip для голосовых вызовов, но оно не работает на Android 5.x (звук не слышен ни в одном направлении). Всякий раз, когда я делаю вызов, звук не слышен.

    Я не могу заставить звук работать в эмуляторе в Android Studio. Это не мой код, так как это очень простой пример программы для демонстрации MediaPlayer , который отлично работает на реальном.


    Ну и путь для джедаев - найти и подгрузить ALSA, если повезет, то оно даже заработает.

    А вообще хочешь странного, в андроидном stagefright идет синхронизация по аудио. Если воспроизводить аудио другими средствами, то возможен рассинхрон


    Наши китайские друзья всегда могут подсунуть подлянку в виде кода снестандартным поведением. Да и рут нужен. Такчто уж лучше через OpenSL.


    Хм. Поверхностно. Объясню что я хочу. Купил себе железку mini pc на andriod 4. Пока еще идет. С чистым linux там, думаю, проблема. А подключаться будет к телеку. Вот отсюда и желание.

    А исходники этого андроида со всеми изменениями от вендора есть?

    Если нет, то выбор не велик - 1)искать нужный пункт в настройках.2)искать плеер, который умеет нужную фичу.

    И это. хвастайся, что купил? Почему вывода РСМ не хватает?


    Еще не приехало.

    Ну так охото подключить к полноценному ресиверу многоканальному. А ему лучше сразу DTS или DD кормить.

    Приедет - буду крутить. Хочу туда linux, ну там вроде mali 400

    А ему лучше сразу DTS или DD кормить.


    У него докодер от компании долби. У него и еще HD-DTS и другие форматы. Если ему кормить формат на прямую, он еще много что умеет с ним. А вот с PCM он не умет ничего - сразу на колонки, без учета изменения фазы, задержек, учета геометрии источников сигнала и тд.

    Теперь понятно, что тебе надо, но дать четкого ответа я не могу. Сильно много разных неопределенностей и вариантов. Для начала - дефолтовый Андроид мало чего из форматов поддерживает. Да, с каждой версией что-то вкусное добавляют, но для нормального домашнего плеера еще далеко. Хватит ли тебе дефолтового плеера или будешь что-то другое использовать? Лично я склоняюсь к второму варианту. Но тогда много чего будет зависить от плеера. Умеет ли он выкидывать пожатый поток, доступны ли его исходники? Ну а теперь с другой стороны - не каждое железо с HDMI разъемом обязано уметь что-то отличное от PCM. Да и если железо будет твой DTS поддерживать, то далеко не факт, что ядро + алса в андроиде будут все это поддерживать. Это как бы не особо востребованная фича, так что китайцы могут болт на нее ложить. Если оно DTS over HDMI таки умеет, то вывести можно будет через альсу.Главное, чтобы у плеера прав хватило на такой обход андроидных прослоек.

    Доброго времени суток.
    Под катом я расскажу, как мне удалось запустить Android на eeePC и подключить к нему большой телевизор.

    Дано:
    Старый ноутбук с WiFi (Ethernet работать не будет)
    Большой монитор или телевизор

    Задача:
    Установить Android на ноутбук, подключить телевизор к ноутбуку как внешний монитор.
    Установить эмулятор ARM для запуска игр с нативным кодом.

    Установка Android на ноутбук

    Установка эмулятора ARM

    cd /sdcard/Download
    mkdir arm
    mv houdini_armlibs.tgz arm/
    cd arm
    tar –xzf houdini_armlibs.tgz.
    rm houdini_armlibs.tgz
    cd…
    cp lib* /system/lib/
    cp –r arm /system/lib/
    reboot

    После перезагрузки заработают многие приложения, которые падали до этого.

    Подключение большого монитора

    image

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

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

    image

    1. Перегружаем ноутбук и загружаемся в Debug mode.
    2. Открываем файл /mnt/grub/menu.lst для редактирования
    vi /mnt/grub/menu.lst
    3. Переходим в режим редактирования, нажимая “I”. Копируем первый пункт меню и дописываем такие параметры к загрузке ядра
    video=LVDS-1:d video=800x600 UVESA_MODE=800x600 DPI=240
    4. В итоге получим такой файл.

    5. Сохраняемся. Esk. Shift +: Набираем x и далее Enter.
    6. Перегружаем.

    image

    В итоге получили возможность загрузиться и работать с внешним монитором.
    Подключаем беспроводную клавиатуру и система готова.

    Update. Параметр DPI=240 позволил убрать тормоза при воспроизведении видео с youtube.

    Читайте также: