MediaPlayer class doesn’t work on Linux when some audio program is working (JavaFX)

Japanese Version

I’m making a JavaFX program on openSUSE 11.2 + KDE 4.3.5.
When I try to use MediaPlayer and Media class to play some music, I experienced a problem.

Sample code:

MediaPlayer {
    media: Media {
        source: "{__DIR__}audio.mp3"
    }
}

When Amarok or Kaffeine are working, audio.mp3 is not played.
But when MPlayer is working, audio.mp3 is played.

* audio.mp3 is played before I play sound with Amarok or Kaffeine.

* I’ve tried only with mp3 format. I don’t know how about other formats.

JavaFX で遊んでみた

JavaFX で遊んで見ました。

表示には Java Runtime Environment 6 update 10 以降が必要です。JavaFX Runtime のインストールを求められるので注意して下さい。

2011/10/02 WordPress.com は JavaScript をサポートしないようなのでプログラム自体を削除。

ちなみにコードはこちら。zlib/libpng license で配布します。

以下、アルゴリズム等のメモ。まぁ極めて初歩的なアルゴリズムですが。
あと最小値指定は自分で考えたので、間違っているかも。
(最大値指定は大学の授業で習ったので間違いないです。)

最大値を引数で指定できない場合は、
rand.nextDouble() % 最大値
のように剰余を取ります。

逆に最大値は指定できるが、最小値を引数で指定できない場合は、
rand.nextInt(最大値 – 最小値) +最小値

どちらも指定できない場合は
rand.nextDouble() % (最大値 – 最小値) + 最小値
です。

※rand.nextDouble(), rand.nextInt() は乱数生成関数。rand.nextInt() の引数は最大値

あと、コードを二つのファイルに分割する際、クラスのみを記述したファイル (Fireflies.fx) をメインファイルとして NetBeans に設定してしまったため、動作しないということがありました。Java だと main メソッドがなければ main クラスとして認識されませんが、Java FX だとそうでもないので、そこは気を付けなければいけませんね。

噴き上がるユメの碧」と、その動画の 2:10 くらいのあたりのエフェクトに触発されて作りました。