0

この質問は以前にこのサイトで尋ねられたことは知っていますが、私の質問はそれとは少し異なります。

.mp3などの外部 Java ライブラリを使用せずにファイルを再生したいjavafx。これは可能ですか?もしそうなら、どのようにしますか? 私は図書館javafxに反対しているわけではありません。教育目的で知りたいだけです。

javaxライブラリを使用すると、.wavファイルを非常に簡単に再生できることを知っています。

public void playSound() {
try {
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/Music/test.wav").getAbsoluteFile());
    Clip clip = AudioSystem.getClip();
    clip.open(audioInputStream);
    clip.start();
    } catch(Exception e) {
    e.printStackTrace();
    }
}

このライブラリでしかファイルを再生できないのに.wav、なぜその 1 つのファイル タイプだけを再生できるのでしょうか? 単に開発者が選択したのでしょうか、それともこの 1 つのファイル タイプを選択するのに何らかの戦略があったのでしょうか? .wav他のファイル タイプよりもファイルにアクセスすると、速度が向上しますか?

4

5 に答える 5

3

私の知る限り、MP3 には特許があり、コーデックの標準セットに含めることはできません。

于 2013-02-06T00:28:08.703 に答える
2

これは可能ですか..?

Java Sound タグで説明されているように、Oracle が J2SE で SPI を提供するまで、または提供しない限り。ウィキ。トムが説明した状況を考えると、それは「絶対にない」と思います。

このライブラリで .wav ファイルしか再生できないのに、なぜその 1 つのファイル タイプだけを再生できるのでしょうか?

繰り返しになりますが、J2SE が組み込みサポートを提供する型を取得する方法については、Wiki を参照してください。

于 2013-02-06T00:30:22.067 に答える
1

追加のライブラリがないと、Java で mp3 ファイルを再生できません。限目。

ただし、Java mp3 をサポートするためのさまざまなライブラリがいくつかあります。

  • JavaFX については既に言及しました (Oracle は JavaFX を Java 7 にバンドルし始めたため、すぐに利用できるようになりました)。
  • 2008年に廃止されたと思われるJavazoom 。
  • XuggleなどのいくつかのFFmpegラッパーは、javax.sound.sampled.spiを実装していないため、通常、新しい API を習得する必要があります。ここで FFmpeg ベースのプロジェクトのリストを見つけることができます。
  • SampledSP - OS X および Windows 用ライブラリ。javax.sound.sampled.spiこれは、さまざまな程度で実装されるライブラリのコレクションです(完全な開示 - 私が書きました)。
于 2013-07-01T09:30:13.877 に答える
1

すべてのソース コードを提供し、mp3 や MIDI ファイルをサポートするサウンド プレーヤーを組み込んだ小さな Java ライブラリがあります。使い方はとても簡単で、すべてのコードを利用できます。試してみたい場合: http://imr-lib.blogspot.com

于 2013-05-22T18:05:17.220 に答える
0

jlayer http://www.javazoom.net/javalayer/javalayer.htmlという単純なライブラリがあります。

于 2013-02-17T08:41:45.373 に答える