/** * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. * */ package cloudExplorer; import jaco.mp3.player.MP3Player; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.net.URL; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; public class MusicPlayer implements Runnable { NewJFrame mainFrame; AudioInputStream audioIn; Clip clip; Boolean wav = false; public MusicPlayer(NewJFrame Frame) { mainFrame = Frame; } public void run() { try { URL music_url = null; final MP3Player mp3 = new MP3Player(); final JButton stopMusic = new JButton("Stop / Close"); final JButton replayMusic = new JButton("Play/Replay"); final JButton forwardMusic = new JButton("Forward"); final JButton backwardMusic = new JButton("Backward"); stopMusic.setBackground(Color.white); stopMusic.setForeground(Color.GRAY); stopMusic.setBorder(null); stopMusic.setFont(stopMusic.getFont().deriveFont(14.0f)); replayMusic.setBackground(Color.white); replayMusic.setBorder(null); replayMusic.setForeground(Color.GRAY); replayMusic.setFont(replayMusic.getFont().deriveFont(14.0f)); backwardMusic.setBackground(Color.white); backwardMusic.setBorder(null); backwardMusic.setForeground(Color.GRAY); backwardMusic.setFont(backwardMusic.getFont().deriveFont(14.0f)); forwardMusic.setBackground(Color.white); forwardMusic.setBorder(null); forwardMusic.setForeground(Color.GRAY); forwardMusic.setFont(forwardMusic.getFont().deriveFont(14.0f)); ImageIcon play = new ImageIcon( getClass().getResource("Actions-media-playback-start-icon.png")); replayMusic.setIcon(play); ImageIcon stop = new ImageIcon( getClass().getResource("Actions-process-stop-icon.png")); stopMusic.setIcon(stop); ImageIcon forward = new ImageIcon( getClass().getResource("Actions-media-seek-forward-icon.png")); forwardMusic.setIcon(forward); ImageIcon rewind = new ImageIcon( getClass().getResource("Actions-media-seek-backward-icon.png")); backwardMusic.setIcon(rewind); mainFrame.jPanel15.setVisible(false); forwardMusic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mp3.skipForward(); } }); backwardMusic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mp3.skipBackward(); } }); stopMusic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (wav) { clip.stop(); } else { mp3.stop(); } mainFrame.jButton17.setEnabled(true); mainFrame.drawBuckets(); } }); replayMusic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mp3.stop(); mp3.play(); mainFrame.jButton17.setEnabled(false); } }); int count = 0; for (int h = 1; h != mainFrame.previous_objectarray_length; h++) { if (mainFrame.object_item[h] != null) { if (mainFrame.object_item[h].isSelected()) { if (mainFrame.object_item[h].getText().toLowerCase().contains(".mp3")) { String url = mainFrame.objectacl.setACLurl(mainFrame.object_item[h].getText(), mainFrame.cred.getAccess_key(), mainFrame.cred.getSecret_key(), mainFrame.cred.getEndpoint(), mainFrame.cred.getBucket()); url = url.replace("Pre-Signed URL = ", ""); music_url = (new URL(url)); mp3.addToPlayList(music_url); wav = false; count++; } if (mainFrame.object_item[h].getText().toLowerCase().contains(".wav")) { wav = true; File temp_file = new File(mainFrame.temp_file); NewJFrame.jTextArea1.append("\nDownloading file to play."); mainFrame.jPanel9.setVisible(true); Get get = new Get(mainFrame.object_item[h].getText(), mainFrame.cred.access_key, mainFrame.cred.secret_key, mainFrame.cred.bucket, mainFrame.cred.getEndpoint(), mainFrame.temp_file, null); get.run(); audioIn = AudioSystem.getAudioInputStream(temp_file); clip = AudioSystem.getClip(); clip.open(audioIn); clip.start(); count++; } if (count == 1) { mainFrame.jPanel14.removeAll(); mainFrame.jPanel14.setLayout(new BoxLayout(mainFrame.jPanel14, BoxLayout.Y_AXIS)); mainFrame.jPanel14.add(replayMusic); if (!wav) { mainFrame.jPanel14.add(forwardMusic); mainFrame.jPanel14.add(backwardMusic); } mainFrame.jPanel14.add(stopMusic); mainFrame.jPanel14.repaint(); mainFrame.jPanel14.revalidate(); mainFrame.jPanel14.validate(); mainFrame.jButton17.setEnabled(false); if (wav) { } else { mp3.play(); } } } } } } catch (Exception mp3player) { NewJFrame.jTextArea1.append("\n" + mp3player.getMessage()); } mainFrame.calibrateTextArea(); } void startc() { (new Thread(new MusicPlayer(mainFrame))).start(); } }