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

📄 mp3player.java

📁 java编的mp3播放器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			playerCTL.pause();
		}else if(playBtnState == Mp3Enum.PAUSE){
			getPlayButton().setText("||");
			playBtnState = Mp3Enum.RESUME;
			playerCTL.resume();

		}
	}
	
	private void dealPlayBtn2(){
		getPlayButton().setText("||");
		playBtnState = Mp3Enum.PLAY;
		playSelectedSong();
	}
	

	
	private void playSelectedSong(){
		int selectedIndex = getCurrentSelectedIndex();
		if(selectedIndex >= 0){
			playerCTL.stop();
			String selectedSong = getPlayList().getItem(selectedIndex);
			SongVO sv= (SongVO)songMap.get(selectedSong);
			String songPath = sv.getPath();
			playerCTL.openSong(songPath);
			playerCTL.play();
			setVolumn();
			totalTimeLabel.setText(secondToTime((int)playerCTL.getTotalTimeSecond()));
			scrollSongName();
		}

	}
	
	private int getCurrentSelectedIndex(){
		int selectedIndex = getPlayList().getSelectedIndex();
		if(selectedIndex < 0){
			if(getPlayList().getItemCount() > 0){
				selectedIndex = 0;
				getPlayList().select(selectedIndex);
			}
		}
		return selectedIndex;
	}
	
	private int getNextSongIndex(){
		int nextIndex = -1;
		int currentindex = getCurrentSelectedIndex();
		if(currentindex >= 0){			
			boolean isCircle = getCircleCheckBox().isSelected();
			boolean isShuffle = getShuffleCheckBox().isSelected();
			if(!isShuffle){ 
				if(isCircle){
					if(currentindex == getPlayList().getItemCount() - 1){
						nextIndex = 0;
					}else{						
						nextIndex = currentindex + 1;
					}
				}else{
					if(currentindex == getPlayList().getItemCount() - 1){
						nextIndex = currentindex;
					}else{						
						nextIndex = currentindex + 1;
					}

				}
				
			}else{
				nextIndex = new Random().nextInt(getPlayList().getItemCount());
			}
		}
		return nextIndex;
	}
	
	
	private int getPreviousSongIndex(){
		int previousIndex = -1;
		int currentindex = getCurrentSelectedIndex();
		if(currentindex >= 0){			
			boolean isCircle = getCircleCheckBox().isSelected();
			boolean isShuffle = getShuffleCheckBox().isSelected();
			if(!isShuffle){ 
				if(isCircle){
					if(currentindex == 0){
						previousIndex = getPlayList().getItemCount() - 1;
					}else{						
						previousIndex = currentindex - 1;
					}
				}else{
					if(currentindex == 0){
						previousIndex = currentindex;
					}else{						
						previousIndex = currentindex - 1;
					}

				}
				
			}else{
				previousIndex = new Random().nextInt(getPlayList().getItemCount());
			}
		}
		return previousIndex;
	}
	
	private void scrollSongName(){
		if(scrollThread != null){
			scrollThread.setCanStop(true);
		}
		scrollThread = new ScrollThread(nameLabel,getPlayList().getSelectedItem());
		scrollThread.start();
		
	}
	
	

	/**
	 * This method initializes previousButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPreviousButton() {
		if (previousButton == null) {
			previousButton = new JButton();
			previousButton.setBounds(new Rectangle(52, 104, 49, 19));
			previousButton.setText("<<");
			previousButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					int previousIndex = getPreviousSongIndex();
					getPlayList().select(previousIndex);
					dealPlayBtn2();
				}
				
			});
		}
		return previousButton;
	}

	/**
	 * This method initializes nextButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getNextButton() {
		if (nextButton == null) {
			nextButton = new JButton();
			nextButton.setBounds(new Rectangle(145, 104, 50, 19));
			nextButton.setText(">>");
			nextButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					int nextIndex = getNextSongIndex();
					getPlayList().select(nextIndex);
					dealPlayBtn2();
				}
				
			});

		}
		return nextButton;
	}

	/**
	 * This method initializes cutButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getCutButton() {
		if (cutButton == null) {
			cutButton = new JButton();
			cutButton.setBounds(new Rectangle(165, 60, 53, 16));
			cutButton.setText("cut");
			cutButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					showCutFrame();
				}
				
			});
		}
		return cutButton;
	}
	
	private void showCutFrame(){
		if(cutFrameState == Mp3Enum.CUTFRAME_HIDE){
			cutFrameState = Mp3Enum.CUTFRAME_SHOW;
			if(mergeFrameState == Mp3Enum.MERGEFRAME_HIDE){
				getCutFrame().setLocation(this.getX()+this.getWidth(), this.getY());
			}else{
				getCutFrame().setLocation(getMergeFrame().getX(),getMergeFrame().getY()+getMergeFrame().getHeight());
			}
			getCutFrame().setVisible(true);
		}else{
			cutFrameState = Mp3Enum.CUTFRAME_HIDE;
			getCutFrame().setVisible(false);
		}
	}

	/**
	 * This method initializes mergeButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getMergeButton() {
		if (mergeButton == null) {
			mergeButton = new JButton();
			mergeButton.setBounds(new Rectangle(220, 60, 72, 16));
			mergeButton.setText("merge");
			mergeButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					showMergeFrame();
				}
				
			});

		}
		return mergeButton;
	}
	
	private void showMergeFrame(){
		if(mergeFrameState == Mp3Enum.MERGEFRAME_HIDE){
			mergeFrameState = Mp3Enum.MERGEFRAME_SHOW;
			if(cutFrameState == Mp3Enum.CUTFRAME_HIDE){
				getMergeFrame().setLocation(this.getX()+this.getWidth(), this.getY());
			}else{
				getMergeFrame().setLocation(getCutFrame().getX(),getCutFrame().getY()+getCutFrame().getHeight());
			}
			getMergeFrame().setVisible(true);
		}else{
			mergeFrameState = Mp3Enum.CUTFRAME_HIDE;
			getMergeFrame().setVisible(false);
		}
	}
	
	

	/**
	 * This method initializes playListFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getPlayListFrame() {
		if (playListFrame == null) {
			playListFrame = new JFrame();
			playListFrame.setSize(new Dimension(305, 215));
			playListFrame.setTitle("playlist");
			playListFrame.setContentPane(getJContentPane());
			playListFrame.setResizable(false);
			windowDragControl.addSubWindow(playListFrame);
		}
		return playListFrame;
	}
	


	/**
	 * This method initializes jContentPane	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getPlayList(), null);
			jContentPane.add(getAddButton(), null);
			jContentPane.add(getRemoveButton(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes playList	
	 * 	
	 * @return javax.swing.JList	
	 */
	private List getPlayList() {
		if (playList == null) {
			playList = new List();
			playList.setBounds(new Rectangle(4, 3, 289, 148));
			playList.addMouseListener(new MouseAdapter(){
				public void mouseClicked(MouseEvent e) {
					// TODO Auto-generated method stub
					if(e.getClickCount() == 2){
						dealPlayBtn2();
					}
				}
			});
		}
		return playList;
	}

	/**
	 * This method initializes addButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAddButton() {
		if (addButton == null) {
			addButton = new JButton();
			addButton.setBounds(new Rectangle(8, 158, 67, 20));
			addButton.setText("add");
			addButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					addFileToList();
				}
				
			});
		}
		return addButton;
	}

	/**
	 * This method initializes removeButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getRemoveButton() {
		if (removeButton == null) {
			removeButton = new JButton();
			removeButton.setBounds(new Rectangle(78, 157, 78, 21));
			removeButton.setText("remove");
			removeButton.addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					removeFileFromList();
				}
				
			});
		}
		return removeButton;
	}

	/**
	 * This method initializes cutFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getCutFrame() {
		if (cutFrame == null) {
			cutFrame = new JFrame();
			cutFrame.setSize(new Dimension(304, 181));
			cutFrame.setTitle("mp3cuter");
			cutFrame.setContentPane(getJContentPane1());
			cutFrame.setResizable(false);
			windowDragControl.addSubWindow(cutFrame);
		}
		return cutFrame;
	}

	/**
	 * This method initializes jContentPane1	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPane1() {
		if (jContentPane1 == null) {
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(245, 50, 39, 18));
			jLabel1.setText("end");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(246, 19, 38, 18));
			jLabel.setText("start");
			jContentPane1 = new JPanel();
			jContentPane1.setLayout(null);
			jContentPane1.add(getStartSlider(), null);
			jContentPane1.add(getEndSlider(), null);
			jContentPane1.add(jLabel, null);
			jContentPane1.add(jLabel1, null);
			jContentPane1.add(getCutFilePath(), null);
			jContentPane1.add(getCutPathButton(), null);
			jContentPane1.add(getCutExecButton(), null);
		}
		return jContentPane1;
	}

	/**
	 * This method initializes mergeFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getMergeFrame() {
		if (mergeFrame == null) {
			mergeFrame = new JFrame();
			mergeFrame.setSize(new Dimension(305, 265));
			mergeFrame.setTitle("mp3merge");
			mergeFrame.setContentPane(getJContentPane2());
			mergeFrame.setResizable(false);
			windowDragControl.addSubWindow(mergeFrame);
		}
		return mergeFrame;
	}

	/**
	 * This method initializes jContentPane2	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPane2() {
		if (jContentPane2 == null) {
			jContentPane2 = new JPanel();
			jContentPane2.setLayout(null);
			jContentPane2.add(getAddMergeButton(), null);
			jContentPane2.add(getRemoveMergeButton(), null);
			jContentPane2.add(getMergeList(), null);
			jContentPane2.add(getMergedFilePath(), null);
			jContentPane2.add(getMergePathButton(), null);
			jContentPane2.add(getMergeExecButton(), null);
		}
		return jContentPane2;
	}
	
	private class PlayerCTL extends PlayerControl{

		
		protected void update(){
			if(!progressSliderDrag){				
				getProcessSlider().setValue((int)Math.round(getProcessSlider().getMaximum()*playedRate()));
			}
			playLabel.setText(secondToTime((int)Math.round(getTotalTimeSecond()*playedRate())));

⌨️ 快捷键说明

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