public class SoundTest extends Application { public static void main(String[] args) { launch(args); } AudioClip ac; Media media; MediaPlayer mp; @Override public void start(Stage primaryStage) { media = new Media(new File("./koredemo.mp3").toURI().toString()); ac = new AudioClip(new File("./koredemo.mp3").toURI().toString()); mp = new MediaPlayer(media); primaryStage.setTitle("これでもくらえ!"); Button btnMP = new Button(); Button btnAC = new Button(); btnMP.setText("Say MediaPlayer"); btnAC.setText("Say AudioClip"); btnMP.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { mp.play(); System.out.println(mp.getStatus()); } }); btnAC.setOnAction(new EventHandler () { @Override public void handle(ActionEvent event) { ac.play(); System.out.println("Hello World!"); } }); HBox root = new HBox(20d); root.getChildren().add(btnMP); root.getChildren().add(btnAC); primaryStage.setScene(new Scene(root, 300, 250)); primaryStage.show(); } }
こんな感じ、汚いけど勘弁して下さい。
AudioClipの方は連打しても音が鳴るけどMediaPlayerは連打じゃ音がならないですねー。何かヒントになるかと思ってgetStatusをしてみたのですが
"READY","PLAYING","STOPPED"の三種類のパターンがあるみたいです。stop()で止めてやればまた鳴るわけですが、再生待ちみたいのをどうやればいいんだか。
効果音とかを使うならAudioClipでしょうね。
//なんかソースの最後にゴミが入る・・・なんやこれ・・・
助かりました、AudioClip使おうっと!
返信削除