⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mp3player.java

📁 java编的mp3播放器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		}

		public void stateUpdated(BasicPlayerEvent arg0) {
			// TODO Auto-generated method stub
			if(arg0.getCode() == BasicPlayerEvent.EOM){
				
				int nextIndex = getNextSongIndex();
				getPlayList().select(nextIndex);
				playSelectedSong();
				
			}else if (arg0.getCode() == BasicPlayerEvent.SEEKED){
				setVolumn();
			}

		}
		
		
	}
	
	private String secondToTime(int second){
        int minutes = (int) Math.floor(second / 60);
        int hours = (int) Math.floor(minutes / 60);
        minutes = minutes - hours * 60;
        second = second - minutes * 60 - hours * 3600;
        return hours+":"+minutes+":"+second;

}

	/**
	 * This method initializes startSlider	
	 * 	
	 * @return javax.swing.JSlider	
	 */
	private JSlider getStartSlider() {
		if (startSlider == null) {
			startSlider = new JSlider();
			startSlider.setBounds(new Rectangle(3, 21, 240, 16));
			startSlider.setValue(0);
			startSlider.addChangeListener(new ChangeListener(){
				public void stateChanged(ChangeEvent e) {
					// TODO Auto-generated method stub
					if(!startSlider.getValueIsAdjusting()){
						double rate = startSlider.getValue()*1.0/startSlider.getMaximum();
						playerCTL.seek(rate);
						setVolumn();
					}
				}
			});
		}
		return startSlider;
	}

	/**
	 * This method initializes endSlider	
	 * 	
	 * @return javax.swing.JSlider	
	 */
	private JSlider getEndSlider() {
		if (endSlider == null) {
			endSlider = new JSlider();
			endSlider.setBounds(new Rectangle(3, 48, 241, 19));
			endSlider.setValue(0);
			endSlider.addChangeListener(new ChangeListener(){

				public void stateChanged(ChangeEvent e) {
					// TODO Auto-generated method stub
					if(!endSlider.getValueIsAdjusting()){
						double rate = endSlider.getValue()*1.0/endSlider.getMaximum();
						playerCTL.seek(rate);
						setVolumn();
					}
				}
			});

		}
		return endSlider;
	}

	/**
	 * This method initializes cutFilePath	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getCutFilePath() {
		if (cutFilePath == null) {
			cutFilePath = new JTextField();
			cutFilePath.setBounds(new Rectangle(10, 82, 174, 23));
			
		}
		return cutFilePath;
	}

	/**
	 * This method initializes cutPathButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getCutPathButton() {
		if (cutPathButton == null) {
			cutPathButton = new JButton();
			cutPathButton.setBounds(new Rectangle(197, 81, 87, 22));
			cutPathButton.setText("save as");
			cutPathButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					String cutfilepath = saveFilePathByJF();
					if(cutfilepath != null){
						getCutFilePath().setText(cutfilepath);
					}
				}
				
			});

		}
		return cutPathButton;
	}
	
	private String saveFilePathByJF(){
		JFileChooser chooser = new JFileChooser();
		chooser.setMultiSelectionEnabled(false);
		chooser.setFileFilter(new MP3FileFilter());
		int returnVal = chooser.showSaveDialog(this);
		if(returnVal == JFileChooser.APPROVE_OPTION) {
			return chooser.getSelectedFile().getAbsolutePath();
		}else{
			return null;
		}

	}

	/**
	 * This method initializes cutExecButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getCutExecButton() {
		if (cutExecButton == null) {
			cutExecButton = new JButton();
			cutExecButton.setBounds(new Rectangle(11, 113, 64, 22));
			cutExecButton.setText("save");
			cutExecButton.addActionListener(new CutBtnListener());
		}
		return cutExecButton;
	}
	
	
	private class CutBtnListener implements ActionListener{

		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			if(getStartSlider().getValue() >= getEndSlider().getValue()){
				getWarningDialog().setVisible(true);
			}else{
				CutThread ct = new CutThread();
				getCutExecButton().setEnabled(false);
				ct.start();
				
				try {
					ct.join();
				} catch (InterruptedException e1) {
					e1.printStackTrace();
				}
				
				getCutExecButton().setEnabled(true);
			}
		}
		
	}
	
	
	
	private class CutThread extends Thread{
		public void run(){
			double rate1 = getStartSlider().getValue()*1.0/getStartSlider().getMaximum();
			long startbyte = Math.round(playerCTL.getTotalBytes()*rate1);
			
			double rate2 = getEndSlider().getValue()*1.0/getEndSlider().getMaximum();
			long endbyte = Math.round(playerCTL.getTotalBytes()*rate2);
			
			String src = ((SongVO)songMap.get(getPlayList().getSelectedItem())).getPath();
			CutAndMerge.cut(src, getCutFilePath().getText(), (int)startbyte, (int)endbyte);
		}
	}
	
	private class MergeBtnListener implements ActionListener{

		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			MergeThread mt = new MergeThread();
			getMergeExecButton().setEnabled(false);
			mt.start();

			try {
				mt.join();
			} catch (InterruptedException e1) {
				e1.printStackTrace();
			}

			getMergeExecButton().setEnabled(true);
		}

	}

	
	private class MergeThread extends Thread{
		public void run(){			
			CutAndMerge.merge(getMergeList().getItems(), getMergedFilePath().getText());
		}
	}


	/**
	 * This method initializes addMergeButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAddMergeButton() {
		if (addMergeButton == null) {
			addMergeButton = new JButton();
			addMergeButton.setBounds(new Rectangle(24, 8, 68, 22));
			addMergeButton.setText("add");
			addMergeButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					SongVO[] sourceSongs = loadFilesByJF();
					if(sourceSongs != null){						
						for(int i = 0;i < sourceSongs.length;i ++){
							getMergeList().add(sourceSongs[i].getPath());
						}
					}
				}
				
			});
			
		}
		return addMergeButton;
	}

	/**
	 * This method initializes removeMergeButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getRemoveMergeButton() {
		if (removeMergeButton == null) {
			removeMergeButton = new JButton();
			removeMergeButton.setBounds(new Rectangle(99, 6, 80, 26));
			removeMergeButton.setText("remove");
			removeMergeButton.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					int[] selectedIndex = getMergeList().getSelectedIndexes();
					if(selectedIndex != null){
						for(int i = 0;i < selectedIndex.length;i ++){
							getMergeList().remove(selectedIndex[i]);
						}
					}
				}
				
			});
		}
		return removeMergeButton;
	}

	/**
	 * This method initializes mergeList	
	 * 	
	 * @return javax.swing.JList	
	 */
	private List getMergeList() {
		if (mergeList == null) {
			mergeList = new List();
			mergeList.setMultipleMode(true);
			mergeList.setBounds(new Rectangle(11, 36, 275, 129));
		}
		return mergeList;
	}

	/**
	 * This method initializes mergedFilePath	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getMergedFilePath() {
		if (mergedFilePath == null) {
			mergedFilePath = new JTextField();
			mergedFilePath.setBounds(new Rectangle(11, 172, 185, 22));
		}
		return mergedFilePath;
	}

	/**
	 * This method initializes mergePathButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getMergePathButton() {
		if (mergePathButton == null) {
			mergePathButton = new JButton();
			mergePathButton.setBounds(new Rectangle(202, 173, 83, 21));
			mergePathButton.setText("save as");
			mergePathButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					String mergePath = saveFilePathByJF();
					if(mergePath != null){
						getMergedFilePath().setText(mergePath);
					}
				}
				
			});
		}
		return mergePathButton;
	}

	/**
	 * This method initializes mergeExecButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getMergeExecButton() {
		if (mergeExecButton == null) {
			mergeExecButton = new JButton();
			mergeExecButton.setBounds(new Rectangle(12, 201, 76, 21));
			mergeExecButton.setText("save");
			mergeExecButton.addActionListener(new MergeBtnListener());
		}
		return mergeExecButton;
	}

	/**
	 * This method initializes warningDialog	
	 * 	
	 * @return javax.swing.JDialog	
	 */
	private JDialog getWarningDialog() {
		if (warningDialog == null) {
			warningDialog = new JDialog(this);
			warningDialog.setSize(new Dimension(277, 132));
			warningDialog.setTitle("warning");
			warningDialog.setContentPane(getJContentPane3());
			warningDialog.setModal(true);
		}
		return warningDialog;
	}

	/**
	 * This method initializes jContentPane3	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPane3() {
		if (jContentPane3 == null) {
			jLabel2 = new JLabel();
			jLabel2.setBounds(new Rectangle(54, 19, 175, 24));
			jLabel2.setText("结束位置应大于起始位置");
			jContentPane3 = new JPanel();
			jContentPane3.setLayout(null);
			jContentPane3.add(jLabel2, null);
			jContentPane3.add(getSureButton(), null);
		}
		return jContentPane3;
	}

	/**
	 * This method initializes sureButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getSureButton() {
		if (sureButton == null) {
			sureButton = new JButton();
			sureButton.setBounds(new Rectangle(84, 58, 83, 25));
			sureButton.setText("确定");
			sureButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					getWarningDialog().setVisible(false);
				}
				
			}); 
		}
		return sureButton;
	}

	/**
	 * This method initializes circleCheckBox	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCircleCheckBox() {
		if (circleCheckBox == null) {
			circleCheckBox = new JCheckBox();
			circleCheckBox.setBounds(new Rectangle(245, 82, 50, 21));
			circleCheckBox.setText("circl");
		}
		return circleCheckBox;
	}

	/**
	 * This method initializes shuffleCheckBox	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getShuffleCheckBox() {
		if (shuffleCheckBox == null) {
			shuffleCheckBox = new JCheckBox();
			shuffleCheckBox.setBounds(new Rectangle(245, 104, 51, 21));
			shuffleCheckBox.setText("shff");
		}
		return shuffleCheckBox;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Mp3Player().setVisible(true);
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -