Domanda

Sto utilizzando il pacchetto javax.sound.sampled in un programma di decodifica in modalità dati radio.Per utilizzare il programma, l'utente invia l'audio dal proprio ricevitore radio all'ingresso di linea del proprio PC.All'utente è inoltre richiesto di utilizzare il proprio programma mixer per selezionare la linea come ingresso di registrazione.Il problema è che alcuni utenti non sanno come farlo e talvolta anche altri programmi alterano l'impostazione dell'ingresso di registrazione.Quindi la mia domanda è: come può il mio programma rilevare se la linea in ingresso è impostata come ingresso di registrazione?Inoltre, è possibile che il mio programma modifichi l'impostazione dell'ingresso di registrazione se rileva che non è corretta?

Grazie per il tuo tempo.

Ian

È stato utile?

Soluzione

Per rispondere alla tua prima domanda, puoi verificare se il file Linea.Info oggetto per le corrispondenze di input della registrazione Informazioni.Porta.LINE_IN come questo:

public static boolean isLineIn(Line.Info lineInfo) {
    Line.Info[] detected = AudioSystem.getSourceLineInfo(Port.Info.LINE_IN);
    for (Line.Info lineIn : detected) {
        if (lineIn.matches(lineInfo)) {
            return true;
        }
    }
    return false;
}

Tuttavia, questo non funziona con i sistemi operativi o le API dei driver della scheda audio che non forniscono il tipo di ciascun canale del mixer disponibile.Quindi quando lo provo su Windows funziona, ma non su Linux o Mac.Per ulteriori informazioni e consigli, vedere questo FAQ.

Per quanto riguarda la tua seconda domanda, puoi provare a modificare le impostazioni dell'ingresso di registrazione tramite a Controllo classe.In particolare, vedi FloatControl.Type per alcune impostazioni comuni.Tieni presente che la disponibilità di questi controlli dipende dal sistema operativo e dai driver della scheda audio, proprio come il rilevamento line-in.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top