• 0

[JAVA] Sound


Question

Hi guys,

Below is a code that i use to play sound

bf = new BufferedInputStream(KeySchedulingScreen.class.getResourceAsStream(filename));

ais = AudioSystem.getAudioInputStream(bf);

AudioFormat format = ais.getFormat();

if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED)

{

format = new AudioFormat(

AudioFormat.Encoding.PCM_SIGNED,

format.getSampleRate(),

format.getSampleSizeInBits()*2,

format.getChannels(),

format.getFrameSize()*2,

format.getFrameRate(),

true); // big endian

ais = AudioSystem.getAudioInputStream(format, ais);

}

// Create the clip

DataLine.Info info = new DataLine.Info(

Clip.class, ais.getFormat(), ((int)ais.getFrameLength()*format.getFrameSize()));

Clip clip = (Clip) AudioSystem.getLine(info);

// This method does not return until the audio file is completely loaded

clip.open(ais);

// Start playing

clip.start();

This code works fine on windows. But when i try on my mac. It gave me an exception.

java.lang.IllegalArgumentException: No line matching interface Clip supporting format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian, and buffers of 9838592 to 9838592 bytes is supported.

The line in bold is the line that is throwing that error.

Any idea how to solve ?

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Unfortunately (and somebody correct me if I'm wrong), but I read somewhere that JavaSound is completely implemented for Mac OSX. This doesn't do well for the cross-platform ideals of Java. The options are:

Quicktime

CoreAudio

Native bindings to CoreAudio in Java.

Sorry I couldn't be much help

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/#findComment-589701086
Share on other sites

  • 0

Sun seem to think that JavaSound is a core API and should be completely cross-platform. They even use it as the demo app in the following x-platform tutorial http://java.sun.com/developer/technicalArt...aLP/JavaToMac3/

Do you get the same error regardless of what (kind of) file you try to play, or is it just one (type of) file?

+Antaris: Is there a typo in your post?

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/#findComment-589701840
Share on other sites

  • 0
AudioStream as = new AudioStream(myClass.class.getResourceAsStream("Sound/cow.wav"));

AudioPlayer.player.start(as);

The above code works for both MAC and Windows. But when compiled, it gave me warnings.

sun.audio.AudioStream is Sun proprietary API and may be removed in a future release

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/#findComment-589704212
Share on other sites

  • 0

Hmn.. kjordan, i was previously using JMF but i could not access resources in my jar file using JMF.

mPlayer = Manager.createPlayer(myClass.class.getResource("Sound/cow.wav"));

mPlayer.start();

The above code works if my SOUND folder with cow.wav in it is at the root folder. But if i package the Sound folder in a jar and correctly pointing it, i get a exception saying cannot find a player for that stream

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/#findComment-589709850
Share on other sites

  • 0
The above code works if my SOUND folder with cow.wav in it is at the root folder. But if i package the Sound folder in a jar and correctly pointing it, i get a exception saying cannot find a player for that stream

Folder and file names seem to be case sensitive when getting resources from a jar.

Link to comment
https://www.neowin.net/forum/topic/662026-java-sound/#findComment-589713536
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Too soon, I'm still not over this death!
    • Normally, I admit when a title is clickbait (unfortunately, it's become somewhat necessary in AI-dominated news sections today), but in this case, all supported versions is implied and doesn't need to be spelled out in the title. Of course, I'm covering a Patch Tuesday update but that is only available to supported Windows SKUs. All our coverage relates to supported Windows software and SKUs only unless we expressly state that it's "unsupported", "unofficial", or "third-party". I'm sorry, but supported/official SKUs don't need to be spelled out as such in every Neowin headline.
    • ALL versions or ALL SUPPORTED versions? Neowin does it again.
    • But the reality is it will work for people's needs, and they don't care about the technology that makes it. Clearly not everyone's needs, but that low end space where personal laptops were only used to type emails, watch content and browse websites, but they didn't want to do that on a small screen device. Heck, writing that out I can now see the connection and reason it'll do so well. Apple is about experience. If the experience is bad, they don't release it. Low end Windows laptop manufacturers up until this point have not taken that into consideration ever before, so slow laggy usage with brittle slimey plastic shells were common. I hope that the low end space at least creates better physical products that last a bit longer, and if Microsoft get their act together, they could also have a solid OS on such low end hardware that would actually make the experience work for what the hardware was intended for. The fact that the CPU is a "cellphone", sorry mobile phone processor is irrelevant. It's about the experience, and so far, that sounds quite solid.
  • Recent Achievements

    • Week One Done
      Jordan Smith earned a badge
      Week One Done
    • Reacting Well
      BizSAR earned a badge
      Reacting Well
    • First Post
      AndreaB earned a badge
      First Post
    • Week One Done
      Huge Trailer earned a badge
      Week One Done
    • Week One Done
      Classifyskilleducation earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      595
    2. 2
      +Edouard
      186
    3. 3
      PsYcHoKiLLa
      77
    4. 4
      Michael Scrip
      73
    5. 5
      Steven P.
      65
  • Tell a friend

    Love Neowin? Tell a friend!