1
import java.net.*; 
import java.io.*; 
import javazoom.jl.player.Player; 


class MP3 { 
// the javazoom player 
static Player player; 

// this is where the audio file is saved 
static String filename = "sentence.mp3"; 

public static void speak(String sentenses) { 
    try{  
      String sentence=sentenses; 

      sentence = URLEncoder.encode(sentence, "UTF-8"); 

      // contact Google TTS services 
     URL url = new URL("http://translate.google.com/translate_tts?tl=en&q=" + sentence); 

      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 
      urlConn.addRequestProperty("User-Agent", "Mozilla"); 
      InputStream audioSrc = urlConn.getInputStream(); 
      DataInputStream read = new DataInputStream(audioSrc); 

      // create the audio file 
      OutputStream outstream = new FileOutputStream(new File(filename));//cc 
      byte[] buffer = new byte[1024]; 
      int len; 
      while ((len = read.read(buffer)) > 0) { 
       outstream.write(buffer, 0, len); 
      } 
      outstream.close(); 

      // javazoom takes over now 
      new MP3().play(filename); 

    }catch(Exception e){ 
      System.out.println(e.getMessage());} 
} 

     public static void speakFr(String sentenses) { 
    try{  
      String sentence=sentenses; 

      sentence = URLEncoder.encode(sentence, "UTF-8"); 

      // contact Google TTS services 
      URL url = new URL("http://translate.google.com/translate_tts?tl=fr&q=" + sentence); 

      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 
      urlConn.addRequestProperty("User-Agent", "Mozilla"); 
      InputStream audioSrc = urlConn.getInputStream(); 
      DataInputStream read = new DataInputStream(audioSrc); 

      // create the audio file 
      OutputStream outstream = new FileOutputStream(new File(filename)); 
      byte[] buffer = new byte[1024]; 
      int len; 
      while ((len = read.read(buffer)) > 0) { 
       outstream.write(buffer, 0, len); 
      } 
      outstream.close(); 

      // javazoom takes over now 
      new MP3().play(filename); 

    }catch(Exception e){ 
      System.out.println(e.getMessage());} 
} 


// play the MP3 file to the sound card 
public static void play(String filename) { 

    try { 
     FileInputStream fis  = new FileInputStream(filename); 
     BufferedInputStream bis = new BufferedInputStream(fis); 
     player = new Player(bis); 
    } 
    catch (Exception e) { 
     System.out.println("Problem playing file " + filename); 
     System.out.println(e); 
    } 

    // run in new thread to play in background 
    new Thread() { 
     public void run() { 
      try { player.play(); } 
      catch (Exception e) { System.out.println(e); } 
     } 
    }.start(); 
} 

} 
  1. Как я могу использовать этот класс, чтобы открыть более одного звена играют их по одному и сохранить их в одном файле с именем sentences.mp3?
  2. Я хочу, чтобы этот класс взял ArrayList или массив String и открыл каждый элемент в новом URL-адресе, чтобы получить звук, а затем сохранить все вместе.
  3. , чтобы иметь возможность запускать этот класс вам нужно библиотека называется jl1.0.jar вы можете скачанный по ссылке ниже: enter link description here

ответ

0

Вы должны использовать код, предназначенный для объединения MP3 потоков вместе , Формат файла MP3 не только поддерживает конкатенацию файлов.

Отъезд: What is the best way to merge mp3 files?

Смежные вопросы