レガシーAPI使いまくりだったのを何となく修正(http://d.hatena.ne.jp/shin/20091214/p3)
- 修正前
AudioClip m_BGM; ... m_BGImage=Toolkit.getDefaultToolkit().getImage(getClass().getResource("/jp/co/paidia/game/muga1/MuGa1_Title.jpg")); m_BGM=Applet.newAudioClip(getClass().getResource("/jp/co/paidia/game/muga1/Title.wav")); m_BGM.loop();
- 修正後
Clip m_BGM; ... try { m_BGImage = ImageIO.read(getClass().getResource("/jp/co/paidia/game/muga1/MuGa1_Title.jpg")); m_BGM = AudioSystem.getClip(); m_BGM.open(AudioSystem.getAudioInputStream(getClass().getResource("/jp/co/paidia/game/muga1/Title.wav"))); m_BGM.loop(Clip.LOOP_CONTINUOUSLY); } catch (UnsupportedAudioFileException ex) { Logger.getLogger(Title.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(Title.class.getName()).log(Level.SEVERE, null, ex); } catch (LineUnavailableException ex) { Logger.getLogger(Title.class.getName()).log(Level.SEVERE, null, ex); }
なるほど、ImageIOも、JavaSoundもthrowをまめにやるようになったんだな。
クオリティには特には差はありませんが「無我」Phase1はこっそりアプレットが置き換わってます。
あ、ImageIO.read()ってBufferedImageなのか。メモリ間の転送がメインになるAppletではこれでいいのかな。Bufferedである必要全然ないんだけど。