[英]Append to an existing file without overwriting it
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();
}
}
You need to use code designed to concatenate MP3 streams together. 您需要使用旨在将MP3流连接在一起的代码。 The MP3 file format doesn't just support file concatenation.
MP3文件格式不仅仅支持文件串联。
Check out: What is the best way to merge mp3 files? 检出: 合并mp3文件的最佳方法是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.