1.test.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class test {
private static class AudioSetting{
String name;
String deviceid;
String vid;
String pid;
}
private static String getcurusbaudio(){
String filename = "./usb_audio_info";
File file = new File(filename);
BufferedReader reader = null;
String tempString = null;
try{
int i = 1;
reader = new BufferedReader(new FileReader(file));
tempString = reader.readLine();
reader.close();
}catch (IOException e) {
e.printStackTrace();
}
return tempString;
}
private static String getcurcamaudio(){
ArrayList<AudioSetting> settings = new ArrayList<AudioSetting>();
String curcamaudio = null;
String name = null;
String deviceid = null;
String filename = "./cards";
File file = new File(filename);
BufferedReader reader = null;
try {
int i = 1;
reader = new BufferedReader(new FileReader(file));
String tempString = null;
while ((tempString = reader.readLine()) != null) {
AudioSetting tmpcard = new AudioSetting();
if((i % 3 == 1) && (tempString.length() > 18)){
deviceid = tempString.substring(1,2);
name = tempString.substring(4,19);
}
if((i % 3 == 0) && (tempString.length() > 41)){
tmpcard.deviceid = deviceid;
tmpcard.name = name;
tmpcard.vid = tempString.substring(33,37);
tmpcard.pid = tempString.substring(38,42);
settings.add(tmpcard);
}
i++;
}
reader.close();
}catch (IOException e) {
e.printStackTrace();
}
int j = 0;
for(j = 0; j <= settings.size() - 1; j++){
if(!settings.get(j).name.substring(0,5).equals("Audio")){
curcamaudio = settings.get(j).vid + settings.get(j).pid + " " + settings.get(j).deviceid + " 0";
break;
}
}
settings.clear();
return curcamaudio;
}
public static void main(String[] args){
String setcamaudio = null;
String getcuraudio = null;
getcuraudio = getcurusbaudio();
setcamaudio = getcurcamaudio();
System.out.println("getcuraudio is " + getcuraudio);
System.out.println("setcamaudio is " + setcamaudio);
System.out.println("!getcuraudio.equals(setcamaudio) is " + !getcuraudio.equals(setcamaudio));
}
}
cards
0 [AMLM6TV ]: SOC-Audio - AML-M6TV
AML-M6TV
USBid -
1 [Audio ]: USB-Audio - Wireless Audio
NA Wireless Audio at usb-lm0-1.4, full speed
USBid - USB1a1d:c001
2 [Camera ]: USB-Audio - USB 2.0 Camera
Sonix Technology Co., Ltd. USB 2.0 Camera at usb-lm0-1.2, high speed
USBid - USB0c45:6340
3 [RX ]: USB-Audio - USB RX
NANO IC USB RX at usb-lm2-1, full speed
USBid - USB1d5a:c0b3
usb_audio_info
1d5ac0b3 2 0
2.编译
javac test.java
3.设置环境变量并运行
CLASSPATH=$CLASSPATH:.
echo $CLASSPATH
java test
结果
getcuraudio is 1d5ac0b3 2 0
setcamaudio is 0c456340 2 0