문제

나는 라디오 데이터 모드 디코딩 프로그램에서 javax.sound.sampled 패키지를 사용하고 있습니다.프로그램을 사용하기 위해 사용자는 라디오 수신기의 오디오를 PC의 라인 입력으로 공급합니다.사용자는 또한 녹음 입력으로 라인 입력을 선택하기 위해 믹서 프로그램을 사용해야 합니다.문제는 일부 사용자가 이 작업을 수행하는 방법을 모르고 때로는 다른 프로그램이 녹음 입력 설정을 변경한다는 것입니다.그래서 내 질문은 라인 입력이 녹음 입력으로 설정되어 있는지 내 프로그램이 어떻게 감지할 수 있느냐는 것입니다.또한 내 프로그램에서 기록 입력 설정이 올바르지 않다고 감지하면 이를 변경할 수 있습니까?

시간 내 줘서 고마워.

이안

도움이 되었습니까?

해결책

첫 번째 질문에 답하려면 라인.정보 녹음 입력 개체가 일치합니다. 항구정보.LINE_IN 이와 같이:

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;
}

그러나 이는 사용 가능한 각 믹서 채널의 유형을 제공하지 않는 운영 체제 또는 사운드 카드 드라이버 API에서는 작동하지 않습니다.따라서 Windows에서 테스트하면 작동하지만 Linux나 Mac에서는 작동하지 않습니다.자세한 내용과 권장 사항은 다음을 참조하세요. 자주하는 질문.

두 번째 질문에 대해서는 다음을 통해 녹음 입력 설정을 변경해 볼 수 있습니다. 제어 수업.특히, 참조 FloatControl.Type 일부 일반적인 설정의 경우.이러한 컨트롤의 가용성은 라인 입력 감지와 마찬가지로 운영 체제 및 사운드 카드 드라이버에 따라 달라집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top