public void load(String name, String filename) {
        if (counter == maxClips) {
            System.out.println("エラー: これ以上登録できません");
            return;
        }

        try {
            // オーディオストリームを開く
            AudioInputStream stream = AudioSystem
                    .getAudioInputStream(getClass().getClassLoader().getResource(filename));

            // オーディオ形式を取得
            AudioFormat format = stream.getFormat();
            // ULAW/ALAW形式の場合はPCM形式に変更
            if ((format.getEncoding() == AudioFormat.Encoding.ULAW)
                    || (format.getEncoding() == AudioFormat.Encoding.ALAW)) {
                AudioFormat newFormat = new AudioFormat(
                        AudioFormat.Encoding.PCM_SIGNED,
                        format.getSampleRate(),
                        format.getSampleSizeInBits() * 2, format.getChannels(),
                        format.getFrameSize() * 2, format.getFrameRate(), true);
                stream = AudioSystem.getAudioInputStream(newFormat, stream);
                format = newFormat;
            }

            // ライン情報を取得
            DataLine.Info info = new DataLine.Info(Clip.class, format);
            // サポートされてる形式かチェック
            if (!AudioSystem.isLineSupported(info)) {
                System.out.println("エラー: " + filename + "はサポートされていない形式です");
                System.exit(0);
            }

            // 空のクリップを作成
            Clip clip = (Clip) AudioSystem.getLine(info);
            // クリップのイベントを監視
            clip.addLineListener(this);
            // オーディオストリームをクリップとして開く
            clip.open(stream);
            // クリップを登録
            clipMap.put(name, clip);
            // ストリームを閉じる
            stream.close();
        } catch (UnsupportedAudioFileException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        }
    }