javafx Duration为什么unknow

javafx Duration为什么unknow,第1张

因为MediaPlayer状态(值)不一样,

当MediaPlayer.Status处于UNKNOWN 时(刚刚创建时的状态),

那么获取结束时间结果也是UNKNOWN.

代码片段一:

Media md=new Media(this.getClass().getResource("a.mp4").toString())

MediaPlayer mp=new MediaPlayer(md)

MediaView mv=new MediaView(mp)

mp.setAutoPlay(true)

System.out.println("创建后的状态"+mp.getStatus())//UNKOWN

System.out.println(mp.getStopTime())

代码片段二: 设置了开始时刻,和结束时刻

Media md=new Media(this.getClass().getResource("a.mp4").toString())

MediaPlayer mp=new MediaPlayer(md)

MediaView mv=new MediaView(mp)

mp.setAutoPlay(true)

mp.setStartTime(Duration.seconds(5))//5秒的位置开始

mp.setStopTime(Duration.seconds(10))//10秒的位置结束

System.out.println(mp.getStatus())// 打印MediaPlayer的状态

System.out.println(mp.getStopTime())// 结束的时刻 10毫秒处结束

System.out.println(mp.getTotalDuration())//总播放时间   结束时刻-开始时刻=总播放时间

完整的代码 如下

/////////////////////////////////////////////////////////////////////////////////

import javafx.application.Application

import javafx.scene.Scene

import javafx.scene.layout.BorderPane

import javafx.scene.media.*

import javafx.stage.Stage

public class MediaViewDemo extends Application{

public static void main(String[] args) {

launch(args)

}

@Override

public void start(Stage primaryStage) throws Exception {

BorderPane root=new BorderPane()

Media md=new Media(this.getClass().getResource("a.mp4").toString())

MediaPlayer mp=new MediaPlayer(md)

MediaView mv=new MediaView(mp)

mp.setAutoPlay(true)

System.out.println("创建后的状态"+mp.getStatus())

root.setCenter(mv)

Scene scene=new Scene(root, 300, 200)

primaryStage.setScene(scene)

primaryStage.setTitle("视频播放")

primaryStage.show()

//添加一个鼠标点击后的事件处理

mv.setOnMouseClicked(e->{

//如果视频处于播放状态. 那么点击后就暂停

if(mp.getStatus()==MediaPlayer.Status.PLAYING) {

mp.pause()

}else{//其余状态,试图播放视频

mp.play()

}

})

// 状态改变时,输出最新的状态

mp.statusProperty().addListener((ob,oldValue,newValue)->{

System.out.println("状态:"+newValue)

})

}

}

 JavaFX脚本是一种声明式、静态类型编程语言。它具有一等函数(first-class functions)、声明式的语法、列表推导(list-comprehensions)及基于依赖关系的增量式求值(incremental dependency-based evaluation)等特征。

JavaFX脚本为多种多样的 *** 作提供了声明式、无中间程序逻辑的语法,这些 *** 作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11349187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存