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使おうっと!
返信削除