Dans linux ce code ne fonctionne pas: j'ai ajouté deux lignesJava: Master Gain non pris en charge exception
// Added two lines.
DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
SourceDataLine dataLine = (SourceDataLine) AudioSystem.getLine(info);
// Adjust the volume on the output line.
if(dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
// If inside this if, the Master_Gain must be supported. Yes?
FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN);
// This line throws an exception. "Master_Gain not supported"
volume.setValue(100.0F);
}
Est-ce normal? Que dois-je faire pour résoudre ceci?
Dans Windows fonctionne-t-il.
Merci, Martijn.
Cela semble être un problème avec la mise en œuvre du « DATALINE » que vous utilisez. Quel est le type de dataline? j'attendre à ce que getControl() ne lance cette exception que lorsque isControlSupported renvoie false ... – Fortega
Il est possible que votre ligne de données ne soit pas du même type que celle de Windows et Linux. Linux et Windows en déboguant ce code – Fortega
Oui, ce sont les mêmes types de lignes. –