JAVA家庭多媒体播放器(学校作业)

news/2024/12/22 23:23:15/
public class Controller {private boolean bind;@FXMLprivate AnchorPane root;//画板@FXMLprivate MediaView Myview;@FXMLprivate Slider jfxSlider;@FXMLprivate Slider soundss;@FXMLprivate ImageView play;@FXMLprivate ImageView sound;@FXMLprivate ImageView stop;@FXMLprivate Button switchhh;@FXMLprivate Button stt;@FXMLprivate Button quickplay;@FXMLprivate Button quickreturn;@FXMLvoid dragDrpped(DragEvent event){Dragboard dragboard =event.getDragboard();//创建拖拽对像if(dragboard.hasFiles()){File file =dragboard.getFiles().get(0);//读取拖拽的文件Media media =new Media(file.toURI().toString());MediaPlayer mediaPlayer = new MediaPlayer(media);//创建媒体对像并读取该文件//为多媒体播放对象设置事件mediaPlayer.setOnReady(()->{mediaPlayer.setAutoPlay(true);//文件拖拽进去时默认自动播放switchhh.setOnMouseClicked(event1 -> {mediaPlayer.pause();//当鼠标点击暂停键时视频暂停});stt.setOnMouseClicked(event1 -> {mediaPlayer.play();//当鼠标点击播放键时视频播放});soundss.setMax(1);//设置声音最大值为1//更改标尺文本soundss.setLabelFormatter(new StringConverter<Double>() {@Overridepublic String toString(Double object) {double dv= object;int v=(int)(object * 100);return Integer.toString(v);}@Overridepublic Double fromString(String string) {return null;}});soundss.valueProperty().bindBidirectional(mediaPlayer.volumeProperty());//将视频音量与音频标尺双向绑定Myview.setMediaPlayer(mediaPlayer);//对myview组件设置视频播放对象//视频进度条相关设置jfxSlider.setMin(mediaPlayer.getStartTime().toSeconds());//将视频进度条的最小值设为视频的开始时间的值jfxSlider.setMax(mediaPlayer.getTotalDuration().toSeconds());//将视频进度条的最大值设为视频的结束时间的值jfxSlider.setOnMousePressed(event1 -> bind =false);//设置鼠标点击事件,并利用bind关联下面鼠标释放事件jfxSlider.setOnMouseReleased(event1 -> {mediaPlayer.seek(Duration.seconds(jfxSlider.getValue()));//当鼠标释放时,读取视频在鼠标点击处的时刻的内容bind=true;});mediaPlayer.currentTimeProperty().addListener(new ChangeListener<Duration>() {@Overridepublic void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {if(bind)jfxSlider.setValue(newValue.toSeconds());//获取当前视频的时间进度}});//为快进按钮设置鼠标点击事件,若发生,则向后跳转十秒quickplay.setOnMouseClicked(event1 -> {mediaPlayer.seek(Duration.seconds(jfxSlider.getValue()+10));bind=true;});//为快退按钮设置鼠标点击事件,若发生,则向前跳转五秒quickreturn.setOnMouseClicked(event1 -> {mediaPlayer.seek(Duration.seconds(jfxSlider.getValue()-5));bind=true;});});}}@FXMLvoid dragOver(DragEvent event){event.acceptTransferModes(TransferMode.ANY);}}

 


http://www.ppmy.cn/news/379565.html

相关文章

走进音视频的世界——杜比音效之AC3与AC4

杜比音效是由杜比实验室开发的&#xff0c;涉及多声道音频压缩技术。这种数字压缩技术目标是生成数字音频信号&#xff0c;当解码重现时&#xff0c;声音与原始信号相同。同时使用最低码率进行压缩&#xff0c;提供真实的立体环绕声。因此&#xff0c;杜比音效广泛应用于电影院…

X-CUBE-USB-AUDIO 资料篇④——USB音频流传输实例(音频播放+音频录制)

文章目录 一、音频播放二、音频录制 所有的USB控制通过EP 0端点。 一、音频播放 STM32F446E-EVAL和STM32F769IDISCOVERY 主机将音频流接口的备用设置设置设置为“1”后&#xff0c;开始传输PCM样本。对于接收到的每个数据包&#xff0c;USB IP将其写入FIFO内存&#xff0c;然…

Android -- 多媒体播放之MediaPlayer基础简介

Android -- MediaPlayer基础简介 MediaPlayer是Android中的一个多媒体播放类&#xff0c;我们能通过它控制音视频流或本地音视频资源的播放过程。 这段时间查阅了Android官方文档对MediaPlayer的介绍&#xff0c;同时也看了一些书籍介绍。现在把MediaPlayer的基础内容在此做一…

X-CUBE-USB-AUDIO 资料篇①——整体介绍

文章目录 一、概述二、引用三、缩略语四、STM32Cube介绍 一、概述 通用串行总线&#xff08;USB&#xff09;是一种广泛使用的通信协议。除了能够实现健壮和快速的数据传输外&#xff0c;它还包括各种应用领域的数据接口&#xff0c;例如用于数据回放和记录的音频流。 本用户…

嵌入式平台音频播放器设计(基础篇)

一、目的 相信不少同学都见过以前那种很小的MP3播放器&#xff08;暴露年龄&#xff09;&#xff0c;高级一点的还带一个小的单色液晶屏&#xff0c;想必理工科男都想自己设计一款这样的一款播放器。 那么如何才能设计实现一个简单的音乐播放器呢? 本文不讲述跟硬件相关的知…

嵌入式网站媒体播放器ExoBUD MP(II) v4.1tc+

ExoBUD MP(II) v4.1tc 网站媒体播放程序安装手记 程序自身压缩包里的readme已经很详细了&#xff0c;本来不想多此一举&#xff0c;只是实在是说得太多了&#xff0c;以至于很多该详细的地方没有详细讲出来&#xff0c;故在这里留块自留地出来&#xff0c;将安装过程中一…

【播放器】媒体播放器三大架构

媒体播放工具&#xff0c;这里主要指视频播放&#xff0c;因为要面临庞大的兼容性和纷繁复杂的算法&#xff0c;从架构上看&#xff0c;能脱颖而出的体系屈指可数。大体来说业界主要有3大架构&#xff1a;MPC、MPlayer和VLC。这3大架构及其衍生品占领了90%的市场&#xff0c;凡…

X-CUBE-USB-AUDIO 资料篇②——AUD_Streaming10 USB音频设备扩展应用

文章目录 一、X-CUBE-USB-AUDIO扩展包二、AUD_Streaming10 USB设备音频扩展应用程序三、程序配置3.1 音频配置3.1 其他配置3.2工程配置 四、目录内容五、项目工程 一、X-CUBE-USB-AUDIO扩展包 STM32Cube的STM32 USB设备音频流软件扩展&#xff0c;由ST提供 请参阅X-CUBE-USB-AU…