用JavaFX写一个简易视频音乐播放器

用JavaFX写一个简易视频音乐播放器

功能支持:

  1. 音量调节
  2. 暂停播放
  3. 重新开始播放

未来改进思路

  1. 进度条用Slider实现?
  2. 倍速(暂时没想到怎么实现)

问题
这边有个小问题是
我给Media的是一个http上的mp4,可以实现视频播放,
在使用本地mp4时只有声音没有视频画面
而在别人的电脑上使用本地mp4时,却并没有存在问题
各位在尝试后可以对我进行反馈 …

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Region;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import javafx.util.Duration;

public class MediaDemo extends Application {

    public static void main(String[] args) {
        launch(args);
    }

//   private static final String MEDIA_URL = "file:/C:/Users/TR/IdeaProjects/javafx/src/Test/123.mp4";用本地mp4视频只有声音没有画面??
    private static final String MEDIA_URL = "http://vfx.mtime.cn/Video/2019/03/19/mp4/190319222227698228.mp4";
    @Override
    public void start(Stage primaryStage) {
        Media media = new Media(MEDIA_URL);
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        MediaView mediaView = new MediaView(mediaPlayer);

        Button playButton = new Button(">");
        playButton.setOnAction(event -> {
            if (playButton.getText().equals(">")) {
                mediaPlayer.play();
                playButton.setText("||");
            }else {
                mediaPlayer.pause();
                playButton.setText(">");
            }
        });

        Button rewindButton = new Button("<<");
        rewindButton.setOnAction(event -> mediaPlayer.seek(Duration.ZERO));

        Slider slVolume = new Slider();
        slVolume.setPrefWidth(150);
        slVolume.setMinWidth(30);
        slVolume.setMinWidth(Region.USE_PREF_SIZE);
        slVolume.setValue(50);
        mediaPlayer.volumeProperty().bind(slVolume.valueProperty().divide(100));

        HBox hBox = new HBox(10);
        hBox.setAlignment(Pos.CENTER);
        hBox.getChildren().addAll(playButton,rewindButton,new Label("Volume"),slVolume);

        BorderPane pane = new BorderPane();
        pane.setBottom(hBox);
        pane.setCenter(mediaView);

        Scene scene = new Scene(pane,1000,600);
        primaryStage.setScene(scene);
        primaryStage.show();


    }
}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值