저는 Java에서 음악 시각화 작업을하고 있지만 문제가 생겨서 문제가 발생했습니다. 내 프로그램은 오디오를 성공적으로 읽었으며 수학 연산/드로잉 함수를 알아 냈습니다.하지만 내 프로그램에서 비주얼을 그리는 등 내 메서드를 설정하는 방법을 알아 내려고 오디오가 재생됩니다. 나는 '오디오 파일 분석 java
byte[] data = new byte[EXT_BUFF_SIZE];
int bytesRead =0;
while(bytesRead!= -1){
try{
bytesRead = ais.read(data,0,data.length);
}catch(IOException e){e.printStackTrace();}
if(bytesRead>0){
int bytesWritten = line.write(data,0,bytesRead);
}
}
line.drain();
line.close();
:
이
은 (라인이 생성되었으며, AudioInputSystem가, AIS로 저장, getAudioInputStream의를 가진 파일에 호출 된 후) 오디오에서 읽을 내 코드의 조각이다 다른 기능에 대한 호출을 잠시 동안 다른 장소에서 시도하거나 아무런 노력을하지 않았습니다. 나는 line.write() 전에 그것을 넣는 것이 효과가있을 것이라고 기대하고 있었지만 그렇게하지는 않았다.유일한 해결책은 파일 대신 전체 파일 대신 읽기 및 쓰기 함수를 호출하는 것이지만 재생시 불연속성이 생길 까봐 두렵습니다. 숨어있는 많은 사람들이 여기에 게시 한 것은 이번이 처음입니다. 제 질문에 대해 충분히 자세히 설명해 주셨습니다. 그렇지 않다면 마지막으로 한 번 시도해 봅니다. 오디오 파일을 읽는 프로그램을 구성한 다음 파일에서 여러 가지 산술 연산을 수행하는 방법과 동시에 두 가지가 동시에 발생하는 것처럼 보일 수 있습니다 (또는 둘 다 스레드를 사용하여 동시에 발생할 수 있습니다). 스케줄링 또는 내가 알아낼 수없는 것)? 모든 도움을 미리 보내 주셔서 감사합니다!
"불확실성이 생길 까봐 두렵습니다 ..."실제 문제가있을 때 두려움을 극복하고 돌아 오십시오. – Kayaman
"... 라인을 만든 후 ..."'line'은 "라인 레벨 오디오 출력 장치"를 나타내는 변수의 이름입니까? – geneSummons
죄송합니다. 더 많은 코드가 포함되어 있어야합니다. Line은 파일에서 데이터를 읽고 쓰는 SourceDataLine입니다. 내가 이해할 수없는 것은 SourceDataLine이 ** 및 ** 쓰기를 읽는 방법이며 재생이 시작되는 곳이 명확하지 않습니다. Kayaman, 나는 단순히 버그를 고치는 것이 아니라 기능이 어떻게 작동해야하는지에 관해 질문하는 사람들을 많이 읽었습니다. 당신의 시간을 낭비해서 죄송합니다. – Scott