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();
}
}
答案 0 :(得分:0)
您需要使用旨在将MP3流连接在一起的代码。 MP3文件格式不仅支持文件串联。