レガシー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である必要全然ないんだけど。