우리는 군중 소싱을 기반으로 음악을 만드는 프로젝트를 진행하고 있습니다. 사람들은 투표가 끝날 때까지 모든 쪽지에 투표하고, 다음 쪽 투표로 넘어 가서 음악을위한 캔버스가 가득 찰 때까지 계속합니다. 유사한 프로젝트는 그것이 어떻게 생겼는지에 대한 아이디어를 얻고 싶다면 군중입니다.heroku에 배포 된 웹 응용 프로그램에서 Java Sound API 사용
우리는 heroku에서 .war를 호스팅했으며 사운드를 제외하고 모든 것을 작동하도록했습니다. 때마다 우리는 (우리가 MIDI 신디사이저를 사용) 자바 사운드 API를 호출하려고, 우리는 다음과 같은 오류 얻을 : 이것은 우리가 웹 응용 프로그램에서 미디 신디사이저를 사용할 수 없다는 뜻
2017-03-10T09:49:01.338821+00:00 app[web.1]: javax.sound.midi.MidiUnavailableException: Can not open line
2017-03-10T09:49:01.339228+00:00 app[web.1]: at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1155)
2017-03-10T09:49:01.339288+00:00 app[web.1]: at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1066)
2017-03-10T09:49:01.339340+00:00 app[web.1]: at music.MusicPlayer.run(MusicPlayer.java:99)
2017-03-10T09:49:01.339391+00:00 app[web.1]: at java.lang.Thread.run(Thread.java:745)
2017-03-10T09:49:01.340759+00:00 app[web.1]: Caused by: java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported.
2017-03-10T09:49:01.340869+00:00 app[web.1]: at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:479)
2017-03-10T09:49:01.340924+00:00 app[web.1]: at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:606)
2017-03-10T09:49:01.340975+00:00 app[web.1]: at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1095)
2017-03-10T09:49:01.341045+00:00 app[web.1]: ... 3 more
을, 또는 거기에 일부입니다 이 일을하는 방법?
해당 코드가 클라우드 서버 또는 클라이언트에서 실행됩니까? 열거 할 때 소스 데이터 행을 볼 수 있습니까? –
@CL. 확실하지는 않지만, 소리를내는 것은 클라이언트 쪽이어야합니다. 응용 프로그램은 클라우드 서버 (예 : VM)에서 실행되는 Tomcat 서버에서 실행됩니다. quesiton의 두 번째 부분에 관해서는 소스 데이터 라인을 다루지 않았기 때문에 그렇게하는 방법을 알려주시겠습니까? 도움이된다면 로컬 서버에서 실행하면 사운드에 오류가 발생하지 않습니다. –