1

最終編集 - 2 つの簡単な回答が必要です。

1) URL で動作するコードを取得できました (以下の応答の 1 つからのコードです)。しかし、私の歌はwavファイルです。File url = new File("---"); を実行しようとすると、機能しません。

代わりに、スタック トレース (そのヒントをありがとう!) で、それは言う

"Failed to allocate clip data: Requested buffer too large"

私が演奏しようとしている曲はテクノで、長さは約 3 分です。

クリップ データ サイズの問題を回避するにはどうすればよいですか?

4

2 に答える 2

2

サンプリングされたサウンドについては、Java Sound APIのクラスを参照してください。特に Clip インターフェイスと AudioSystem クラス。

Java Sound は SPI を使用して、J2SE に組み込まれているデフォルトに追加フォーマットのサポートを追加します。JMF ベースの mp3plugin.jar を追加して、MP3 のサポートを JavaSound に提供できます。


ループで WAV を再生するには、この小さな例を参照してください。

import java.net.URL;
import javax.sound.sampled.*;

public class LoopSound {

  public static void main(String[] args) throws Exception {
    URL url = new URL(
      "http://pscode.org/media/leftright.wav");
    Clip clip = AudioSystem.getClip();
    AudioInputStream ais = AudioSystem.
      getAudioInputStream( url );
    clip.open(ais);
    clip.loop(5);
    javax.swing.JOptionPane.showMessageDialog(null, "Close to exit!");
  }
} 
于 2010-09-24T09:23:29.423 に答える
0

このチュートリアルをチェックしてください。独自の読み取り-フィード-再生ループを実装し、メモリエラーを回避する方法を示しています。

http://codeidol.com/java/swing/Au​​dio/Play-Non-Trivial-Audio/

于 2012-03-16T21:48:10.337 に答える