Почему я не могу воспроизводить mp3 файлы в java

Я делаю учебное пособие по Java, чтобы помочь мне выучить японский, но мне было трудно заставить его говорить со мной по-японски. Espeak не работал, поэтому я использовал этот код для получения файла .mp3 и установил mpg123 для его воспроизведения. Это прекрасно работает в терминале, но не может заставить его играть в Java.

Мой код:

String command="mpg123 "+dir+"/Xubuntu\\ Apps/Study\\ guide/Japanese/sounds/あう.mp3";
        System.out.println(command);
        try {Runtime.getRuntime().exec(command);} catch (IOException e) {e.printStackTrace();}

Вывод

mpg123 /home/myuser/Documents/Xubuntu\ Apps/Study\ guide/Japanese/sounds/あう.mp3

Я не слышу звука, но когда я копирую / вставляю команду в терминале, она отлично работает.

Почему не играет в Java?

3
задан 23 May 2017 в 15:39

1 ответ

Если вы хотите использовать код Embed для воспроизведения песни, вы можете использовать этот код:)

Источник: http://java-demos.blogspot.hu/2012/ 11 / java-code-to-play-mp3-file.html

Код для воспроизведения песни MP3 на Java:

import javax.media.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class AudioPlay {

    public static void main(String args[]) throws Exception {

        // Take the path of the audio file from command line
        File f = new File(args[0]);

        // Create a Player object that realizes the audio
        final Player p = Manager.createRealizedPlayer(f.toURI().toURL());

        // Start the music
        p.start();

        // Create a Scanner object for taking input from cmd
        Scanner s = new Scanner(System.in);

        // Read a line and store it in st
        String st = s.nextLine();

        // If user types 's', stop the audio
        if (st.equals("s")) {
            p.stop();
        }
    }
}

Объяснение :

Player является интерфейсом в пакете javax.media . Поскольку вы не можете создать объект для интерфейса напрямую, написан некоторый класс, реализующий его, и используется его объект. Менеджер такой класс, который делает вещь.

Есть несколько состояний, в которых игрок будет. Они

НЕРЕАЛИЗОВАНЫ : Значение, игрок ничего не знает о том, что он должен делать (о средствах массовой информации)

РЕАЛИЗОВАТЬ : Значение, игрок понимает, что его мир (определение ресурсов) необходим для выполнения работы (воспроизведения файла)

РЕАЛИЗОВАН : означает, что игрок получает свои ресурсы для воспроизведения файла и также будет иметь некоторую информацию о типе носителя и т. д.

ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА : сейчас готовится, знает, как можно воспроизвести файл.

ПРЕДВАРИТЕЛЬНО : Теперь он знает, как воспроизводить мультимедиа. Он может стрелять сейчас.

START : запускает музыку, начинает воспроизведение файла.

Мы создали реализованного игрока, это не значит, что шаги НЕРЕАЛИЗОВАННЫЕ, РЕАЛИЗОВАННЫЕ пропускаются, вместо этого они выполняются автоматически. Метод createRealizedPlayer(URL url) принимает URL, который указывает на медиа файл. Для получения объекта URL из объекта File вы можете использовать метод toURL() в классе java.io.File, так как он устарел, мы назвали метод toURI(), который возвращает объект java.net.URI, а затем метод toURL() в Пользователь также должен остановить музыку, поэтому ввод данных осуществляется пользователем.

Однако вывод не может быть показан, вам придется попробовать его, помните, что при выполнении программы укажите полный путь к аудиофайлу, иначе возникнет ArrayIndexOutOfBoundsException. Команда может выглядеть следующим образом:

java AudioPlay "Path/to/file.mp3"

Кредит переходит к Java Demo

0
ответ дан 23 May 2017 в 15:39

Другие вопросы по тегам:

Похожие вопросы: