「javajmf视频教程」java jmf
本篇文章给大家谈谈javajmf视频教程,以及java jmf对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
用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用JMF编写的视频播放器播放本地文件只有声音没有图像,求解啊!!!
需要安装对应的解码器 (decoder),JMF 本身并不自带所有的解码器,跟 Windows Media Player 一样,它也是查找系统中注册过的解码器,你用 Windows Media Player 来播放估计也是一样只有声音没有图像。
我们可以在网上搜索常用的解码器(只是解码器不包含播放器)来安装。
JAVA的JMF如何实现从特定时间点开始播放并结束于特定时间点
哦,我之前学习时候用swing写过一个播放器,带播放进度条和播放模式,不过界面不好看。
部分代码也许对你有帮助。
方法一
/**
* 开始播放songList集合中第index首歌曲,并返回播放路径
* @param mpf
* @param b(b为真则播放第index首,如果为假则播放原来那首)
* @return
*/
public static String playBegin(MediaPlayerFrm mpf,int b,Time time) {
mpf.btnBegin.setText("播放");
if (mpf.index 0) {
return null;
}
// 如果当时没有音乐播放就走上面-----如果当时有音乐在播放就走下面
if (!mpf.isSing) {
mpf.singing = mpf.songVec.get(mpf.index);
mpf.af = new AudioFile(mpf.singing);
mpf.af.play();
} else{
System.out.println("cut------------换个歌");
// 辞旧
playEnd(mpf);
// 迎新
//如果是1,就是按index播放,如果是2就播放原来那首歌,如果是3就按time播放原来那首歌
if(b==1){
mpf.singing = mpf.songVec.get(mpf.index);
mpf.af = new AudioFile(mpf.singing);
mpf.af.play();
}else if(b==2){
mpf.af = new AudioFile(mpf.singing);
mpf.af.play();
}else if(b==3){
mpf.af = new AudioFile(mpf.singing);
mpf.af.getPlayer().setMediaTime(time);
mpf.af.play();
}
}
mpf.btnBegin.setText("暂停");
mpf.isSing = true;
// 线程2,控制进度条和时间
new Thread(new PlayThread(mpf)).start();
// 线程1,时刻检查歌曲是否唱完
new Thread(mpf).start();
return mpf.singing;
}
方法二 这个是当点击进度条的时候让播放器在新的位置播放文件
public void mouseClicked(MouseEvent e) {
if(e.getSource()==btnLeft){
if(e.getX()=3){
playBegin(this,2,null);
return;
}
if(!isSing||changeless==0.0){
return;
}
int newBorderline=e.getX()-3;
setSchedule(this, newBorderline);
//设置新的播放位置
double newLoc=changeless*(newBorderline*1.0/300);
JOptionPane.showMessageDialog(this, newLoc);
if(newLoc==0.0){
return;
}
//把player停掉
af.getPlayer().stop();
Time newTime=new Time(1);
// playBegin(this,3,new Time(newLoc));
}
}
从上次关掉时结束的1分19秒开始,然后播到2分33秒的时候结束,
可以将关闭时候播放前播放的歌曲和时间持久在文件中,在每次打开播放器就读取文件。
至于需要在两个时间段中,循环,可以在播放的时候,开启一个子进程,让子进程去监控时间。
javajmf视频教程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java jmf、javajmf视频教程的信息别忘了在本站进行查找喔。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。