📄 mp3player.java
字号:
}
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 + -