包含java的media的词条
本篇文章给大家谈谈java的media,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java怎样实现打开视频文件
- 2、用java做音视频播放器
- 3、在Java中,为什么 导入import javax.media总是提示错误,求具体解决步骤
- 4、使用Java media framework 播放一个视频,出现视频能看,音频不能解码的问题
- 5、Java Media APIS是什么
- 6、初学了一段时间Java。想做一个应用程序,程序只需要播放一个本地视频,MP4格式,求教怎么做
java怎样实现打开视频文件
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.media.*;
// 视频播放程序
public class VideoPlayDemo extends JFrame {
private Player player; // 播放器对象
private Component visualMedia; // 视频显示组件
private Component mediaControl; // 视频播放控制组件
private Container container; // 主容器
private File mediaFile; //媒体文件
private URL fileURL; //媒体文件URL地址
public VideoPlayDemo() { // 构造函数
super("视频播放程序"); //调用父类构造函数
container = getContentPane(); //得到窗口容器
JToolBar toobar = new JToolBar(); //实例化工具栏
JButton openFile = new JButton("打开媒体文件"); //实例化按钮
toobar.add(openFile); //增加按钮到工具栏
JButton openURL = new JButton("打开网络地址");
toobar.add(openURL);
container.add(toobar, BorderLayout.NORTH); //设置工具栏
openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//设置文件打开模式为仅打开文件
int result = fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框
if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为
mediaFile = fileChooser.getSelectedFile(); //得到选择的文件
}
if (mediaFile != null) {
try {
fileURL = mediaFile.toURL(); //得到文件的URL地址
} catch (MalformedURLException ex) {
ex.printStackTrace(); //输出错误信息
showMessage("打开错误"); //显示错误信息
用java做音视频播放器
我做过一个MP3的..给你看看.
package music;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.media.bean.playerbean.*; //这个包要用到JMF
public class MP3 extends JFrame implements Runnable {
public JLabel shijian;
private JSlider sldDiameter;
public MediaPlayer soumd1;
public JButton playSound, loopSound, stopsound;
public JButton tjian, shanc, baocun, duqu;
public JPanel jp1, jp2, jp3, jp4;
public JList jl;
int zongmiao=0;
public Vector vector, mingcheng;
boolean fo = false, geshi = false;
JLabel jl1, jl2, sj1, sj2;
JTextField jt1, jt2;
JButton queding, xiugai;
int zong = 0;
int a = 0, b = 0, you = 1,mm=0;
int fenzhong, miaozhong;
public MP3() {
super(“java简单音乐播放器“);
soumd1 = new MediaPlayer();
Container c = getContentPane();
c.setLayout(new FlowLayout());
mingcheng = new Vector();
jp1 = new JPanel();
shijian = new JLabel();
jp1.add(shijian);
c.add(jp1);
playSound = new JButton(“开始播放“);
loopSound = new JButton(“循环播放“);
stopsound = new JButton(“停止播放“);
jp2 = new JPanel();
jp2.add(playSound);
jp2.add(loopSound);
jp2.add(stopsound);
c.add(jp2);
jp4 = new JPanel();
sj1 = new JLabel();
sj2 = new JLabel();
sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0);
sldDiameter.setMajorTickSpacing(1);
sldDiameter.setPaintTicks(true);
jp4.add(sj1);
jp4.add(sldDiameter);
jp4.add(sj2);
c.add(jp4);
vector = new Vector();
jl = new JList(mingcheng);
jl.setVisibleRowCount(5);
jl.setFixedCellHeight(40);
jl.setFixedCellWidth(265);
jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
c.add(new JScrollPane(jl));
tjian = new JButton(“添加“);
shanc = new JButton(“删除“);
duqu = new JButton(“读取“);
baocun = new JButto
摘选自网上,希望对你有帮助。
在Java中,为什么 导入import javax.media总是提示错误,求具体解决步骤
因为javax.media不是jdk默认的包,是JMF的,你看下相关的jar有没有导到你的项目里。
参考这里:
使用Java media framework 播放一个视频,出现视频能看,音频不能解码的问题
你播放的是mov的视频吧,你看看你默认的播放器是什么,有的播放器的解码器播放mov视频时就是有没声音的bug,这个应该不是java程序的问题,因为java只负责调用执行文件,你既然已经看到图像了就说明java已经调用到了。或者你换个其他格式的视频文件试试
Java Media APIS是什么
Java Media APIS 是Java Media API 的复数形式,
API = Application Programming Interface(应用编程接口),
Java Media API(Java多媒体应用编程接口)是由Sun公司推出的一种用于处理和
开发多媒体(包括流媒体)应用的面向Java Application和Java Applet的应用编程接口(API)。
初学了一段时间Java。想做一个应用程序,程序只需要播放一个本地视频,MP4格式,求教怎么做
使用javafx的Media,MediaPlayer,MediaView。代码如下:
import java.io.File;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.ReadOnlyProperty;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.Slider;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaPlayer.Status;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import javafx.stage.Stage;
import javafx.util.Duration;
public class App extends Application {
private MediaView mediaView;
private Slider processSlider;
private static final Object AUTO = new Object(), MANUAL = new Object();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("javafx视频播放器");
BorderPane root = new BorderPane();
// 菜单栏
initMenu(root);
// 视频播放控件
mediaView = initMediaView(root);
// 视频功能控件
initMediaControllView(root);
primaryStage.setScene(new Scene(root, 600, 400));
primaryStage.setOnCloseRequest(event - System.exit(0));
primaryStage.show();
}
private MenuBar initMenu(final BorderPane parent) {
Menu menu = new Menu("菜单");
MenuItem item = new MenuItem("打开");
item.setOnAction(event - {
FileChooser chooser = new FileChooser();
chooser.setTitle("选择视频文件");
chooser.getExtensionFilters().add(new ExtensionFilter("视频文件", "*.mp4", "*.flv"));
File file = chooser.showOpenDialog(parent.getScene().getWindow());
if (file != null) {
MediaPlayer player = mediaView.getMediaPlayer();
// 关闭当前的player
if (player != null) {
player.stop();
player.dispose();
}
processSlider.setValue(0);
// 创建一个新的player并自动播放
player = new MediaPlayer(new Media(file.toURI().toString()));
player.currentTimeProperty().addListener(this::mediaProcessChanged);
player.setAutoPlay(true);
mediaView.setMediaPlayer(player);
}
});
menu.getItems().add(item);
item = new MenuItem("退出");
item.setOnAction(event - parent.getScene().getWindow().hide());
menu.getItems().add(item);
MenuBar menuBar = new MenuBar(menu);
parent.setTop(menuBar);
return menuBar;
}
private MediaView initMediaView(final BorderPane parent) {
MediaView view = new MediaView();
Pane pane = new Pane(view);
parent.setCenter(pane);
// 视频宽高可随着窗口变化而自动缩放
view.fitWidthProperty().bind(Bindings.selectDouble(view.parentProperty(), "width"));
view.fitHeightProperty().bind(Bindings.selectDouble(view.parentProperty(), "height"));
view.setPreserveRatio(true);
return view;
}
private void initMediaControllView(final BorderPane parent) {
VBox bottom = new VBox(10);
bottom.setAlignment(Pos.CENTER);
parent.setBottom(bottom);
Slider slider = new Slider(0, 100, 0);
slider.valueProperty().addListener(this::processSliderChanged);
// slider.setOnMouseClicked(this::processSliderClicked);
bottom.getChildren().add(slider);
processSlider = slider;
HBox hbox = new HBox(10);
bottom.getChildren().add(hbox);
hbox.setAlignment(Pos.CENTER);
Button btn = new Button(null, new ImageView(loadImage("pause.png")));
btn.setOnAction(this::pauseOrPlay);
hbox.getChildren().add(btn);
btn = new Button(null, new ImageView(loadImage("stop.png")));
btn.setOnAction(this::stopPlay);
hbox.getChildren().add(btn);
}
private static Image loadImage(String resPath) {
return new Image(Thread.currentThread().getContextClassLoader().getResourceAsStream(resPath));
}
private void pauseOrPlay(ActionEvent event) {
MediaPlayer player = mediaView.getMediaPlayer();
if (player == null) {
return;
}
Status status = player.getStatus();
if (status == Status.READY || status == Status.PAUSED) {
player.play();
((Button) event.getTarget()).setGraphic(new ImageView(loadImage("pause.png")));
} else if (status == Status.PLAYING) {
player.pause();
((Button) event.getTarget()).setGraphic(new ImageView(loadImage("play.png")));
}
}
private void stopPlay(ActionEvent event) {
MediaPlayer player = mediaView.getMediaPlayer();
if (player == null) {
return;
}
player.stop();
}
// private void processSliderClicked(MouseEvent event) {
// Slider slider = (Slider) event.getSource();
// if (mediaView.getMediaPlayer() != null) {
// Duration d = mediaView.getMediaPlayer().getTotalDuration().multiply(slider.getValue() / slider.getMax());
// mediaView.getMediaPlayer().seek(d);
// }
// }
private void processSliderChanged(ObservableValue? extends Number observable, Number oldValue, Number newValue) {
Slider slider = (Slider) ((ReadOnlyProperty? extends Number) observable).getBean();
if (slider.getUserData() == AUTO) { // 进度条是自动改变的,因此不用设置播放器
slider.setUserData(null);
return;
}
if (mediaView.getMediaPlayer() != null) {
slider.setUserData(MANUAL);
Duration d = mediaView.getMediaPlayer().getTotalDuration().multiply(newValue.doubleValue() / slider.getMax());
mediaView.getMediaPlayer().seek(d);
}
}
private void mediaProcessChanged(ObservableValue? extends Duration observable, Duration oldValue, Duration newValue) {
if (processSlider.getUserData() == MANUAL) { // 手动点击进度条
processSlider.setUserData(null);
return;
}
MediaPlayer player = (MediaPlayer) ((ReadOnlyProperty? extends Duration) observable).getBean();
processSlider.setUserData(AUTO);
processSlider.setValue(newValue.toMillis() / player.getTotalDuration().toMillis() * 100);
}
}
关于java的media和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。