包含java的media的词条

博主:adminadmin 2023-03-17 14:16:12 390

本篇文章给大家谈谈java的media,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。