JavaFX初探与MediaPlayer(4)

您所在的位置:网站首页 怎么用mediaplayer倍速播放 JavaFX初探与MediaPlayer(4)

JavaFX初探与MediaPlayer(4)

2023-10-06 04:10| 来源: 网络整理| 查看: 265

终于要放视频了!!!

从第一 次博客我就说要放视频,然后一直拖,一直拖。。。然后考试加磕盐加旅游。。。结果年都过了我还没把视频放出来。。。 (拖延症害死人啊!!!!)

今天我们真的来播放视频。JavaFX提供Media类用来表示多媒体(音视频),用MediaPlayer类播放音视频,再用一个MediaView类显示视频。它们都在javafx.scene.media中。使用时大致关系如下: Media –> MediaPlayer –> MediaView

首先是Media类。Media类可以说是非常突出JavaFX为互联网应用而设计(虽然就是流行不起来)的特性了。Media类只能用URL来初始化,这给我们后面打开本地多媒体带来了一点小麻烦,网络上其他不少博客都提到了这个事情。待会我说如何解决。只是因为这个,我们会先播放网络上的流媒体。

这些类的初始化可以这样做:

String url = "http://www.gov.cn/guoqing/guoge/hc.mp3"; Media media = new Media(url); MediaPlayer mplayer = new MediaPlayer(media); MediaView mView = new MediaView(mplayer);

我相信有我前面3篇博客的铺垫,大家都能看懂以上代码了吧(笑)。如果大家懒得敲代码,我就把代码全贴上。。。 (温馨提示:测试的是MP3音频,大家听之前请起立。)

import javafx.application.Application; import javafx.scene.layout.Pane; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; public class TestMediaDemo extends Application{ public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage){ String url = "http://www.gov.cn/guoqing/guoge/hc.mp3"; Media media = new Media(url); MediaPlayer mplayer = new MediaPlayer(media); MediaView mView = new MediaView(mplayer); System.out.println(media.getSource()); Pane pane = new Pane(); pane.getChildren().add(mView); mView.fitHeightProperty().bind(pane.heightProperty()); mView.fitWidthProperty().bind(pane.widthProperty()); Scene scene = new Scene(pane,640,360); primaryStage.setTitle("MediaDemo"); primaryStage.setScene(scene); primaryStage.show(); mplayer.play(); } }

emmmm… 说好的测试视频人类圣经京紫纪元呢??emmm,请把url那行换成以下代码:

String url = "https://cn-sxxa-dx-v-02.acgvideo.com/vg1/6/2a/29662087-1-16.mp4?expires=1515985200&platform=flash&ssig=h3iTfwrKcM-DK2wB87aWpA&oi=2087966946&nfa=hno/XSvDsQc4EM4Yi2jKaw==&dynamic=1&hfa=2020138098&hfb=YzczMmRlMTk4ZTRhNzhlZGE4YTlmM2QzZTAxYzYyOTE=";

这里写图片描述

当我们想打开本地文件时,把这个URL替换成文件名是没用的,等着抛出异常吧;换成“file:文件名”还是没用的,等着抛出异常吧;换成“file:\文件名”更是没用的,等着抛出异常吧^_^。 一个主要原因是,JavaFX是为互联网应用设计的,所以对本地文件,也要改成URL格式,可本地文件的URL是什么呢? 幸好Java提供了为文件求URL的方法:

java.io.File file = new java.io.File("media\\Twinkle_Snow.mp4"); //关于这个视频是什么,我只能说无可奉告 url = file.toURI().toString();

我专门用一个System.out.println把这个本地文件的URL输出来:

file:/E:/java/VideoDemo/media/Twinkle_Snow.mp4

我真的是Windows啊!!!奈何Java只想要正斜杠呢。。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3