Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt

Devanther

Top Contributor
Hallo,

ich habe einen MP3 Player mit Hilfe von ChatGPT erstellt, ich habe viel Code kopieren müssen und den Code und
die Fehlermeldungen anpassen müssen. Doch wie in der Überschrift kann ich keine mp3 Datei öffnen....
es öffnet sich ein Dialog zum Öffnen der Datei....doch wenn ich die Datei auswähle und öffne passiert nix.

Brauche ich das Java Media Framework (JMF) ?

Da hilft mir jetzt Chat GPT nicht mehr weiter....erwähnt aber das es vielleicht am nicht vorhandenen JMF liegen könnte.

Java:
package application;
import java.io.File;
import java.util.LinkedList;
import java.util.Queue;

import javax.media.Manager;
import javax.media.Player;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class MP3Player {

    private Queue<File> songQueue = new LinkedList<>();
    private Player player;
    private GainControl gainControl;
    private boolean songIsPlaying = false;

    public static void main(String[] args) {
        MP3Player mp3Player = new MP3Player();
        mp3Player.run();
    }

    public void run() {
        while (true) {
            String command = JOptionPane.showInputDialog("Befehl eingeben (öffnen, abspielen, pausieren, beenden):");
            if(command == null || command.trim().isEmpty()){
                continue;
            }
            switch (command) {
                case "öffnen":
                    open();
                    break;
                case "abspielen":
                    play1();
                    break;
                case "pausieren":
                    pause1();
                    break;
                case "Lautstärke":
                    changeVolume();
                    break; 
                case "beenden":
                    System.exit(0);
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Unbekannter Befehl.");
                    break;
            }
        }
    }


    private void open() {
        JFileChooser fileChooser = new JFileChooser();
        int result = fileChooser.showOpenDialog(null);
        if (result == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
            if (file != null) {
                try {
                    player = Manager.createPlayer(file.toURI().toURL());
                    // player.start();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }


    private void play1() {
        if (player != null) {
            player.start();
        }
    }

    private void pause1() {
        if (player != null) {
            player.stop();
        }
    }
  
//    private void play() {
//        if (!songQueue.isEmpty()) {
//            if (player != null && !songIsPlaying) {
//                songIsPlaying = true;
//                player.start();
//            }
//        }
//    }

    private void pause() {
        if (player != null) {
            player.stop();
            songIsPlaying = false;
        }
    }

    private void changeVolume() {
        if (player != null) {
            float volume = Float.parseFloat(JOptionPane.showInputDialog("Geben Sie die Lautstärke ein (0.0-1.0)"));
            gainControl = player.getGainControl();
            if (gainControl != null) {
                gainControl.setLevel(volume);
            }
        }
    }


}

Wenn man eine Datei öffnen könnte und abspielen könnte und pausieren könnte, könnte man das mit der Warteschlange der mp3 Dateien noch richtig machen.
Kopiert den Code einfach in eure IDE. Es kommen keine Fehlermeldungen.
 
Schau mal bitte hier:


bei dir fehlt der javafx.scene.media.Media und MediaPlayer...
 
Muss ich etwas extra installieren ?
Ja, leider JavaFX ... oder du verwendest eine andere Library für MP3s (empfohlen) ...

Das habe ich jetzt erst genau gelesen.

Mit JavaFX ungefähr:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MPlayer</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx</artifactId>
            <version>11</version>
            <type>pom</type>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-media</artifactId>
            <version>11</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <configuration>
                    <mainClass>org.example.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Java:
package org.example;

import javafx.application.Platform;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

import java.io.File;

public class Main {
    public Main() {
        Platform.startup(() -> {
        });
        Platform.runLater(() -> {
            String filename = "pluck-loop-91bpm-132429.mp3";
            Media hit = new Media(new File(filename).toURI().toString());
            MediaPlayer mediaPlayer = new MediaPlayer(hit);
            mediaPlayer.play();
        });
    }

    public static void main(String[] args) {
        new Main();
    }
}

... nur ist das für mich nicht brauchbar, denn es kann offenbar nicht mit Bluetooth umgehen ...
 
Na ja, dann kopiere mal

String filename = "pluck-loop-91bpm-132429.mp3"; Media hit = new Media(new File(filename).toURI().toString()); MediaPlayer mediaPlayer = new MediaPlayer(hit); mediaPlayer.play();

und schaue, ob das geht ... Deine MP3-Datei muss im Projekthauptverzeichnis liegen.

Weitere Hilfe kann ich dazu aber nicht geben, weil ich wie gesagt eine Library anstatt FX dafür nutzen würde ...
 

Zurück
Oben