Java ItemStateChanged

0

Witam,

Dlaczego ten kod nie działa?
Kod jest taki jak w tutorialach javy.

JChceckBoxMenuItem cbRandom;

cbRandom = new JCheckBoxMenuItem("Odtwarzanie losowe");
        cbRandom.addItemListener(this);
        menu.add(cbRandom)

public void itemStateChanged(ItemEvent e) {
	JCheckBoxMenuItem sr = (JCheckBoxMenuItem)(e.getSource());
	if (sr == cbRandom){ //tutaj krzyczy Eclipse
	bar.setValue(45);
	}
0

Bo to powinien być ActionListener albo changeListener

może dla przykładu:

 
		final JCheckBoxMenuItem j = new JCheckBoxMenuItem();
		j.setText("TEST");
j.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				j.setText("fdgfdg");
				
			}
		}); 
0

zmieniłem ItemEvent na ActionEvent i dalej to samo

0

chcesz uzyskać zmiane wartości bar poprzez zaznaczenie boxa?
dodaj sobie dla testu

  	if(!j.getState()){
					j.setText("sddsds");
				}else{
					j.setText("sddsds nie");
				}

Chciałbym dodać że Eclipse ma opcje ctrl + spacja :)

0

mam dwa check boxy w menu, jeden cbRound drugi cb Random,
w zależności od naciśniętego przycisku chcę modyfikować inny pasek

0

a czy one są od siebie zależne? Jeden true to drugi false ?czy nie mają na siebie wpływu? napisze szybko sobie taki programik (chwilke to potrwa)

0

są niezależne, ale mam jeszcze dodatkowo dwa przyciski które robią to samo co check box'y, nie wiem jak zrobić synchronizację pomiędzy przyciskiem a chceckbox'em

1
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 * @author int0
 * 
 */
public class Test extends JFrame {

	public Test() {
		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

		final JCheckBoxMenuItem j = new JCheckBoxMenuItem();
		final JCheckBoxMenuItem k = new JCheckBoxMenuItem();
		final JToggleButton uno = new JToggleButton("B1");
		final JToggleButton sec = new JToggleButton("B2");
		final JProgressBar bar = new JProgressBar();
		j.setText("TEST1");
		k.setText("TEST2");
		JPanel o = new JPanel();
		GroupLayout layout = new GroupLayout(getContentPane());

		layout.setHorizontalGroup(layout
				.createSequentialGroup()
				.addComponent(j)
				.addComponent(k)
				.addComponent(bar)
				.addGroup(
						layout.createParallelGroup(
								GroupLayout.Alignment.LEADING)
								.addComponent(uno).addComponent(sec)));
		layout.setVerticalGroup(layout
				.createSequentialGroup()
				.addGroup(
						layout.createParallelGroup(
								GroupLayout.Alignment.BASELINE).addComponent(j)
								.addComponent(k).addComponent(bar)
								.addComponent(uno)).addComponent(sec));
		setLayout(layout);
		add(o);
		pack();

		/*
		 * j.addActionListener(new ActionListener() {
		 * 
		 * public void actionPerformed(ActionEvent arg0) { if(!j.getState()){
		 * j.setText("sddsds"); bar.setValue(40); }else{
		 * j.setText("sddsds nie"); bar.setValue(0); }
		 * 
		 * } });
		 */
		j.addChangeListener(new ChangeListener() {

			@Override
			public void stateChanged(ChangeEvent arg0) {
				if (!j.getState()) {
					j.setText("sddsds");
					bar.setValue(40);
				} else {
					j.setText("sddsds nie");
					bar.setValue(0);
				}

			}
		});

		uno.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				if (!uno.isSelected()) {
					uno.setText("OFF");
					// bar.setValue(40);
					k.setSelected(false);
				} else {
					uno.setText("ON");
					// bar.setValue(0);
					k.setSelected(true);
				}

			}
		});
		sec.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				if (!sec.isSelected()) {
					sec.setText("OFF");
					// bar.setValue(40);
					j.setSelected(false);
				} else {
					sec.setText("ON");
					// bar.setValue(0);
					j.setSelected(true);
				}

			}
		});
		k.addChangeListener(new ChangeListener() {

			@Override
			public void stateChanged(ChangeEvent arg0) {
				if (!k.getState()) {
					k.setText("Nie ma");
					bar.setStringPainted(false);
				} else {
					k.setText("jest");
					bar.setStringPainted(true);
				}

			}
		});

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//
		new Test().setVisible(true);
	}

}

O to ci chodziło? oczywiście możesz jeszcze dodać że check boxy aktywują przycisk warto dodać że nie wszystkie zależności są spełnione odnośnie przycisków, jest tylko przykład.

0

o to dzięki wielkie

Mam pytanie odnośnie Media Playera w javafx
Znalazłem w necie przykłady użycia ale ich nie rozumiem i jakieś błędy pojawiają się w Eclipsie.
Ładuję sobie pliki do tablicy File [], nie wiem jak się zabrać za odtwarzacz.
Wystarczy tylko jak odtwarzać plik, resztę sobie sam napiszę.

0

widziałem to, problem w tym że jak sobie wkleję do kodu

String bip = "bip.mp3";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();

to się nie chce kompilować
nie mam pojęcia dlaczego, bibliotekę ma poprawnie dołączoną

0

a masz jmf?

0

mam to zaimportowane poprawnie w Eclipsie
import javafx.scene.media.*;
jeśli trzeba jeszcze coś dodać to proszę o wskazówki do Eclipsa

EDIT:
Wszytko co potrzebne mam bo znalazłem jeden program, który się kompiluje i normalnie odtwarza.
Niestety dalej nie rozumiem jak tego użyć

0

Ja normalnie pobrałem zainstalowałem i działa jak trzeba odtwarzanie, jak masz problem z użyciem?

0

napisałem sobie taką funkcję,

wywołuję playSound(file); //file jest plikiem wczytanym przez file choosera


public void playSound(File file){
		String bip = file.getPath();
		Media hit = new Media(bip);
		MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
	}

plik jest chyba dobrze wczytany bo jetem w stanie wyświetlić jego nazwę

0

Coś nie działa czy jak, bo nie wiem teraz tak naprawdę w czym trzeba pomóc

0

no właśnie nie działa, nie mam pojęcia dlaczego
Plik file zadeklarowane globalnie.

tak ładuję plik mp3

if(e.getActionCommand().equals("Open")){
			JFileChooser chooser = new JFileChooser();
		    FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
		    chooser.setFileFilter(filter);
		    chooser.showOpenDialog(this);
		    	file = chooser.getSelectedFile();
		    
		}

coś takiego wyrzuca konsola

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in path at index 31: /Users/Mariusz/Music/Aleksandra Burke - Let It Go.mp3
at javafx.scene.media.Media.<init>(Media.java:359)
at MyFrame.playSound(MyFrame.java:295)
at MyFrame.actionPerformed(MyFrame.java:277)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.net.URISyntaxException: Illegal character in path at index 31: /Users/Mariusz/Music/Aleksandra Burke - Let It Go.mp3
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parseHierarchical(URI.java:3086)
at java.net.URI$Parser.parse(URI.java:3044)
at java.net.URI.<init>(URI.java:595)
at javafx.scene.media.Media.<init>(Media.java:357)

1

Z czym masz problem? Z językiem angielskim, czy z liczeniem do 31? Spacja jest "nielegalna".

0

wrzuciłem stare błędy przepraszam,
zmieniłem kod metody playSound()
ale wciąż mam jakieś błędy nie wiem dlaczego.

file.toPath() zwraca /Users/Mariusz/Music/Audio.mp3

public void playSound(File file){
		String bip = file.toURI().toString();
		Media hit = new Media(bip);
		MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
	
	}

Exception in thread "Thread-12" java.lang.IllegalStateException: Toolkit not initialized
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
	at javafx.application.Platform.runLater(Platform.java:52)
	at javafx.scene.media.Media$_MetadataListener.onMetadata(Media.java:499)
	at com.sun.media.jfxmediaimpl.MetadataParserImpl.done(MetadataParserImpl.java:158)
	at com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.parse(ID3MetadataParser.java:270)
	at com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:141)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Toolkit not initialized
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
	at javafx.application.Platform.runLater(Platform.java:52)
	at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:450)
	at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:365)
	at MyFrame.playSound(MyFrame.java:300)
	at MyFrame.actionPerformed(MyFrame.java:281)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

0

Pierwszy link po wpisaniu w google "java.lang.IllegalStateException: Toolkit not initialized at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)":

http://stackoverflow.com/questions/14025718/javafx-toolkit-not-initialized-when-trying-to-play-an-mp3-file-through-mediap

0

Czy jest jakiś sposób, aby zmodyfikować ten kod tak aby mógł odtwarzać MP3 przy użyciu javafx.
Chodzi mi o to że nie chce mi się pisać całego GUI od początku, bo jak rozumiem muszę mieć obiekt Scene
Bardzo proszę o pomoc, projekt mam na zaliczenie, a już dużo czasu mi nie zostało.

EDIT:
Trochę poskracałem kod, bardziej skrócić go nie potrafię.
Byłbym wdzięczny gdyby ktoś pomógł mi napisać metodę która będzie odtwarzała pliki MP3

import javafx.scene.media.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;


public class MyFrame extends JFrame implements ActionListener{
	
	boolean ROUND = false;
	boolean RANDOM = false;
	
	void setRandom(){
		if (RANDOM == true){
			RANDOM = false;
		}
		else {RANDOM = true;}
	}
	void setRandom(boolean state){RANDOM = state;}
	void setRound(boolean state){ROUND = state;}
	void setRound(){
		if (ROUND == true){
			ROUND = false;
		}
		else {ROUND = true;}
	}

	boolean getRandom(){return RANDOM;}
	boolean getRound(){return ROUND;}
	
	final int SPACEX = 5;
	public File[] playlist;
	public File file;
	JButton [] button = new JButton [7];
	JProgressBar bar;
	JCheckBoxMenuItem cbRound, cbRandom;
	JMenuBar menuBar;
    JMenu menu1, menu2 ;
    JMenuItem [] menuItem = new JMenuItem [10];
    JLabel sliderLabel;
    JSlider volume;
    JPanel volume_panel;
    
	public MyFrame(){
		super("Odtwarzacz MP3");
		
		button [0] = new JButton(new ImageIcon("images/rewind.png"));
        button [0].setActionCommand("Prev");
        button [1] = new JButton(new ImageIcon("images/play.png"));
        button [1].setActionCommand("Play");
        button [2] = new JButton(new ImageIcon("images/pause.png"));
        button [2].setActionCommand("Pause");
        button [3] = new JButton(new ImageIcon("images/stop.png"));
        button [3].setActionCommand("Stop");
        button [4] = new JButton(new ImageIcon("images/forward.png"));
        button [4].setActionCommand("Next");
        button [5]= new JButton(new ImageIcon("images/random.png"));
        button [5].setActionCommand("Random");
        button [6] = new JButton(new ImageIcon("images/round.png"));
        button [6].setActionCommand("Round");
		
        sliderLabel = new JLabel("  Głośność  ", JLabel.CENTER);
        volume = new JSlider();
        volume.setValue(100);
        volume.setPreferredSize(new Dimension(230,20));
        volume_panel = new JPanel();
        volume_panel.add(sliderLabel);
        volume_panel.add(volume);
        volume_panel.setBackground( Color.WHITE );
        
        bar = new JProgressBar();
        bar.setValue(50);
        bar.setStringPainted(true);
        bar.setPreferredSize(new Dimension(350,20));
        bar.setString("Tutuł odtwarzanego utworu");
        
        menuItem [0] = new JMenuItem("Otwórz plik");
        menuItem [0].setActionCommand("Open");
        menuItem [0].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_O, ActionEvent.CTRL_MASK));
        
        menuItem [1]= new JMenuItem("Nowa playlista");
        menuItem [1].setActionCommand("New_Playlist");
        menuItem [1].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_N, ActionEvent.CTRL_MASK));

        menuItem [2]= new JMenuItem("Zakończ");
        menuItem [2].setActionCommand("Close");
        menuItem [2].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_4, ActionEvent.ALT_MASK));
        
        menuItem [3]= new JMenuItem("Odtwarzaj");
        menuItem [3].setActionCommand("Play");
        menuItem [3].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, 0)); 
        
        menuItem [4]= new JMenuItem("Pauza");
        menuItem [4].setActionCommand("Pause");
        menuItem [4].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, 0)); 

        menuItem [5]= new JMenuItem("Stop");
        menuItem [5].setActionCommand("Stop");
        menuItem [5].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0)); 
        
        menuItem [6]= new JMenuItem("Następny");
        menuItem [6].setActionCommand("Next");
        menuItem [6].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, 0)); 
   
        menuItem [7]= new JMenuItem("Poprzedni");
        menuItem [7].setActionCommand("Prev");
        menuItem [7].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, 0)); 
        
        cbRandom = new JCheckBoxMenuItem("Odtwarzanie losowe");
        cbRound = new JCheckBoxMenuItem("Zapętlanie");
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setLocation(200,200);
        setLayout(new FlowLayout());
        setResizable(false);
        setVisible(true);
        getContentPane().setBackground( Color.WHITE );
        
        for (JButton b : button){
        	b.setBorder(BorderFactory.createEmptyBorder());
            b.setContentAreaFilled(false);
            b.addActionListener(this);
        }
        
        add(Box.createRigidArea(new Dimension(400,5))); 
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [0]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [1]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [2]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [3]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [4]);
        add(Box.createRigidArea(new Dimension(SPACEX-3,0)));
        add(button [5]);
        add(volume_panel);
        add(button [6]);
        add(bar);
  	
        //Tworzenie paska narzędzi
        menuBar = new JMenuBar();

        //Menu Plik
        menu1 = new JMenu("Plik");
        menuBar.add(menu1);  
        for (int i = 0 ; i<=2 ; i++){
        	menuItem [i].addActionListener(this);
        	menu1.add(menuItem [i]);
        	menu1.addSeparator();
        }
      //Menu Odtwarzanie.
        menu2 = new JMenu("Odtwarzanie");
        menuBar.add(menu2);
        for (int i = 3 ; i<=7 ; i++){
        	menuItem [i].addActionListener(this);
        	menu2.add(menuItem [i]);
        }
        menu2.addSeparator();
        menu2.add(cbRandom);
        menu2.add(cbRound);
       
        setJMenuBar(menuBar);
        cbRandom.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                    if (!cbRandom.getState()) {
                        setRandom(false); 
                    } else {
                    	setRandom(true);
                    }

            }
        });
        
        cbRound.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                    if (!cbRound.getState()) {
                        setRound(false); 
                    } else {
                    	setRound(true);
                    }

            }
        });
    }
	


	
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("Close")) {
			System.exit(0);
		}
		if(e.getActionCommand().equals("Open")){
			JFileChooser chooser = new JFileChooser();
		    FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
		    chooser.setFileFilter(filter);
		    chooser.showOpenDialog(this);
		    	file = chooser.getSelectedFile();
		    	System.out.println(file.getPath());
		    
		}
		if(e.getActionCommand().equals("New_Playlist"))  {
			JFileChooser chooser = new JFileChooser();
			chooser.setMultiSelectionEnabled(true);
			FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
			chooser.setFileFilter(filter);
			chooser.showOpenDialog(MyFrame.this);
			playlist = chooser.getSelectedFiles();	
		}
		if(e.getActionCommand().equals("Play")) {
			bar.setString(file.getName().split(".mp3")[0]);
			System.out.println(file.getPath());
			playSound(file); 
		}
		if(e.getActionCommand().equals("Stop")) {
			bar.setString("Tytuł odtwarzanego utworu");
			
		}
		
		if(e.getActionCommand().equals("Random")) {
			setRandom();
			cbRandom.setSelected(getRandom());
		}
		if(e.getActionCommand().equals("Round")) {
			setRound();
			cbRound.setSelected(getRound());
		}
	}
	public void playSound(File file){
		
		String bip = file.toURI().toString();
		Media hit = new Media(bip);
		final MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
		
	}
}




import java.awt.EventQueue;


public class Player {
	    public static void main(String[] args) {
	        EventQueue.invokeLater(new Runnable() {
	            @Override
	            public void run() {
	            	new MyFrame();
	            	   
	            }
	            
	        });
	    }
	}


0
 public void playSound(File file) throws NoPlayerException, IOException{
		 
		 MediaLocator ml = new MediaLocator(file.toURL());
		 Player p = Manager.createPlayer(ml);
		 p.start();

 }

i import jmf-a

0

pobrałem JMF cross-platform (używam mac'a) ze strony oracle
dodałem import javax.media.*;
dodałem build path w eclipsie

niestety nie działa.
eclipse podkreśla mi Manager.createPlayer(ml); chce rzutować to na Player, rzutowanie nie pomaga
podkreśla również p.start(); pisze że nie ma metody start w klasie Player

0

Import całego folderu jmf-a, nie może nie działać ponieważ robiłem to u siebie i działa jak trzeba

0

czy w JMF masz plik sound.jar bo u mnie go nie ma, może dlatego nie działa

0

wyrzuca mi taki błąd:

Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize=32768 bits
Failed to realize: com.sun.media.PlaybackEngine@7e26f5a7
Error: Unable to realize com.sun.media.PlaybackEngine@7e26f5a7

0

Hmmm wygląda na brak pluginu MP3 - sciągnij :
http://www.oracle.com/technetwork/java/javase/download-137625.html

Oczywiście napisz czy to coś dało.

0

po kliknięciu download
pojawia się http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html#javamp3-1_0-oth-JPR
a tam nie ma nic z pluginem MP3
JMF pobrałem wcześniej

0

A dodaj do Eclipse mp3plugin.jar - powinien ten plik byc

1 użytkowników online, w tym zalogowanych: 0, gości: 1