은 그렇게 같이하는 SourceDataLine를 만들 수 있습니다SourceDataLine에 쓸 수있는 데이터의 형식은 무엇입니까? 자바에서
AudioFormat af = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0, 16, 1, 2, 44100.0, false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
된 후에는 데이터를 열고 쓸 수 있습니다 :
byte[] data = new byte[1024];
fillwithsounds(data);
sdl.open()
sdl.start()
sdl.write(data, 0, 1024);
이 모든 모노 데이터에 대한 잘 작동합니다.
스테레오 데이터를 쓸 수 있도록 바이트 배열을 변경해야하는 방법에 대한 온라인 설명서를 찾을 수 없습니다.
나는 내가 AudioFormat을 만들 때 채널의 양을 증가해야 할 것 같다- 그것을 스테레오를 만들기 위해 - 그리고 나는 반 프레임 율 필요가 이해가 안
(그렇지 않으면 자바는 IllegalArgumentException를 슬로우) 왜 이것이, 또는 DataSourceLine에 피드하는 데이터의 새로운 형식이어야하는지.
오디오 형식에 대한 경험이 조금 더있는 사람이이 문제에 대해 밝힐 수 있습니다. 미리 감사드립니다!
저는 모노 프레임, 모노 프레임, 모노 프레임으로 구성된 바이트 배열 대신에 이론을 세우고 있습니다. 바이트 배열은 이제 왼쪽 프레임, 오른쪽 프레임, 왼쪽 프레임, 오른쪽 프레임, 왼쪽 프레임, 오른쪽 프레임으로 구성됩니다. 나는 그것을 구현하려했지만, 나에게 현명한 것을주는 것이 아니라, 나를 정적으로 보냈다. –
* "그 후에 데이터를 열어서 쓸 수 있습니다 : 이 모든 것이 모노 데이터에 적합합니다."* 거의 다 됐습니다. 원래 형식으로 16 바이트 프레임마다 작성한 내용을 두 번 씁니다. 효과적으로 '두 명의 스피커를 통한 모노'이지만, 다른 채널에 쓸 다른 무언가가 있다면 대신 작성하십시오. –
* "구현하려했지만, .."* 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –