7 votes

Comment activer l'option USB "Source audio" sur Android 9+?

Beaucoup de captures d'écran sur Internet mentionnent une configuration 'source audio' USB pour Android. Par exemple, celle-ci de Google :

Cependant, je ne vois pas cette option avec mon SM-A510F avec Android 9 (LineageOS 16).

Est-ce qu'il y a quelque chose que je peux faire pour l'activer ? Est-ce qu'elle a définitivement disparu d'Android ?

1 votes

Vous réalisez que le Samsung SM-A510F est de 2016 et possède une prise casque, il est donc peu probable d'avoir les pilotes pour l'audio USB. Sinon, vous devriez montrer ce que vous voyez sur votre appareil.

0 votes

Un choix est le MIDI. Prenant en moi-même, "Eh bien, c'est de l'audio...", j'ai essayé. Mon DAC USB (reference-audio-analyzer.pro/en/…) fonctionne de nouveau ! :D Très content ! Votre expérience peut varier, mais ça vaut le coup d'essayer ! :)))

9voto

Irfan Latif Points 16863

Les appareils Android peuvent fonctionner en mode USB hôte ou en mode périphérique. L'hôte est celui qui contrôle la communication USB. Les PC fonctionnent principalement en mode hôte. Le périphérique est celui qui est alimenté et contrôlé par l'hôte. La clé USB est un exemple commun de périphérique USB. Le noyau Linux/Android prend en charge le mode périphérique grâce à différents pilotes de périphérique. UMS, MTP, ADB sont différents modes de périphérique sur les appareils Android.

Audio via USB en mode périphérique

Sur les appareils Android, il est techniquement possible de diffuser de l'audio via USB à la fois en mode hôte et en mode périphérique. Depuis Android 4.1, ce dernier mode est “fourni par Accessoire Android ouvert (AOA) 2.0 et offre une capacité audio limitée”. Il utilise le pilote de périphérique audio USB dans le noyau (compilé avec l'option CONFIG_USB_AUDIO) et les accessoires prenant en charge le protocole AOAv2 sont construits en utilisant le kit de développement d'accessoires (ADK). La page Accessoires personnalisés indique :

Le protocole AOA spécifie comment un accessoire peut établir une communication avec un appareil Android via USB. En raison de la faible puissance de sortie des appareils Android, AOA exige que l'accessoire agisse en tant qu'hôte USB, ce qui signifie que l'accessoire connecté doit alimenter le bus.

Mais selon la documentation officielle :

L'audio en mode accessoire n'a pas été largement adopté et n'est actuellement pas recommandé pour de nouveaux designs.

Et la documentation sur le protocole AOA met en garde :

Attention : le support audio AOAv2 a été abandonné dans Android 8.0.

Cela signifie que les appareils Android 9+ ne pourront pas fonctionner en mode périphérique tout en diffusant de l'audio via USB. Ainsi, l'option de configuration USB Source audio n'est plus disponible.

Audio via USB en mode hôte

Cependant, les appareils Android prennent en charge les périphériques audio en mode hôte (le noyau doit être compilé avec CONFIG_SND_USB_AUDIO). Comme AOA est spécifique à Android, de tels accessoires ne sont pas utilisables avec d'autres hôtes tels que les PC. Ainsi, il y avait une demande des fabricants de périphériques audio, des OEM de périphériques et de la communauté des développeurs de ROM pour prendre en charge la capacité de sortie audio USB standard en mode hôte (par exemple, voir cela, cela et ceci). Le support d'un sous-ensemble des fonctionnalités de la classe audio USB 1 (UAC1) a été ajouté dans Android 5.0.

Les classes de périphériques USB spécifient les protocoles standard pour les fonctions périphériques USB afin que l'hôte puisse interagir avec eux sans avoir besoin de pilotes spécifiques au matériel (c'est-à-dire en mode sans pilote). Le stockage de masse USB (UMS) en est un exemple courant. Toutes les clés USB compatibles avec la classe de stockage de masse (MSC) fonctionnent sur tous les systèmes d'exploitation, y compris Linux, Android et Windows, quel que soit le fabricant de l'appareil. De la même manière, les périphériques audio USB qui sont conformes à la classe audio USB 1 fonctionnent avec les appareils Android comme sur tout autre hôte USB, par exemple les PC.

Ainsi, l'audio USB en mode hôte couvre un large éventail de périphériques basés sur l'USB, y compris les casques qui suivent la spécification des casques USB.

Lorsqu'un périphérique compatible UAC1 (comme un DAC) est connecté au port USB d'un appareil Android, l'audio numérique est automatiquement routé vers ce périphérique. Cependant, si une application souhaite utiliser des API USB hôte avancées pour interagir avec le périphérique (et non simplement le routage audio), il est possible de Désactiver le routage audio USB dans les Options pour les développeurs.

0 votes

Fr, pouvons-nous désactiver le routage automatique vers l'audio USB de manière programmable? Pouvez-vous répondre à cela stackoverflow.com/questions/77436297/…

1 votes

@Qamar votre application doit avoir l'autorisation WRITE_SECURE_SETTINGS accordée. Ensuite, appelez Settings.Secure.putInt(context.getContentResolver(), "usb_audio_automatic_routing_disabled", 1). // Désolé non.

0 votes

@IrfanLatif Salut Irfan. Est-ce que ça te dérangerait de jeter un œil à cette question quelque peu liée que j'ai? Android 13 unité principale de voiture ne routera pas les appels téléphoniques ou l'audio AV-IN vers le DAC/AMP USB android.stackexchange.com/q/255930/405546?sem=2

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X