Sto provando a creare una configurazione a doppio schermo. Il tablet Android (Nexus 10) è collegato a un altro schermo tramite HDMI.Uscita audio su cuffia e altoparlante contemporaneamente
Durante la riproduzione di filmati sul tablet (utilizzando VLC o altre app), verrà visualizzato correttamente su entrambi gli schermi.
Tuttavia, il segnale audio viene trasferito solo tramite HDMI. Usando il siamo riusciti ad avere l'uscita Audio su o su cuffie o HDMI.
Non riesco a vedere una funzione per impostare l'uscita audio per entrambi i dispositivi allo stesso tempo. Ho provato a configurarlo con Audio Manager, ma funziona solo per un canale.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setSpeakerphoneOn(true);
am.setWiredHeadsetOn(true);
Un'altra cosa che ho notato è l'API setParameters che poi passa le variabili al sistema audio della piattaforma. Potrebbe essere ALSA, forse la soluzione è lì?
Thx e ha tutto il senso. Per verificare la mia comprensione: un sistema Android personalizzato (ad esempio, sono un OEM e in grado di distribuire le mie versioni personali) potrebbe contenere un 'ALSADevice.cpp' modificato che quindi ha una route impostata per HDMI e Altoparlante allo stesso tempo. L'unica preoccupazione rimasta è che la funzione 'getUCMDevice' può restituire solo un singolo dispositivo audio - o è questo che intendi con percorsi? Quindi dovrei prima aggiungere un percorso, quindi restituire l'ID del percorso/nome lì, corretto? –
Dovresti assicurarti che AudioPolicyManager selezioni effettivamente HDMI + Altoparlante per il tipo di stream che stai utilizzando (o almeno per il tipo di flusso _some_). Quindi ALSADevice deve selezionare un dispositivo UCM combinato (ad esempio qualcosa come 'SND_USE_CASE_DEV_HDMI_SPEAKER'), e infine dovresti aggiornare il file UCM (snd_soc_msm_blabla) per aggiungere le impostazioni effettive (quello che chiamo il routing di basso livello) per il tuo nuovo aggiunto Dispositivo UCM. ..e ovviamente la piattaforma deve supportare effettivamente questo. – Michael
Grazie per le informazioni, ma puoi fare qualcosa come copiare il flusso di dati all'interno dell'applicazione e inviarlo a un dispositivo di output diverso da solo? –