Cách đơn giản nhất để ghép hai tệp WAV trong Java 1.6 là gì? (Tần số bình đẳng và tất cả, không có gì lạ mắt.)Tham gia hai tệp WAV từ Java?
(Đây có lẽ là sooo đơn giản, nhưng Google-fu tôi dường như yếu về đề tài này ngày hôm nay.)
Cách đơn giản nhất để ghép hai tệp WAV trong Java 1.6 là gì? (Tần số bình đẳng và tất cả, không có gì lạ mắt.)Tham gia hai tệp WAV từ Java?
(Đây có lẽ là sooo đơn giản, nhưng Google-fu tôi dường như yếu về đề tài này ngày hôm nay.)
Đây là mã barebones:
import java.io.File;
import java.io.IOException;
import java.io.SequenceInputStream;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
public class WavAppender {
public static void main(String[] args) {
String wavFile1 = "D:\\wav1.wav";
String wavFile2 = "D:\\wav2.wav";
try {
AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wavFile1));
AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2));
AudioInputStream appendedFiles =
new AudioInputStream(
new SequenceInputStream(clip1, clip2),
clip1.getFormat(),
clip1.getFrameLength() + clip2.getFrameLength());
AudioSystem.write(appendedFiles,
AudioFileFormat.Type.WAVE,
new File("D:\\wavAppended.wav"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Cảm ơn bạn! Phải có một cách đơn giản. – krosenvold
Điều này không hoạt động nữa vì Android không hỗ trợ javax.sound.sampled. * Gói nữa. Có cách nào khác để làm điều đó không? –
Alex thân yêu câu hỏi là về trong java không cho Android – dhams
Tiêu đề WAV nên không quá khó để phân tích, và nếu Tôi đọc chính xác this header description, bạn có thể chỉ xóa 44 byte đầu tiên từ WAV thứ hai và chỉ cần thêm byte vào byte đầu tiên. Sau đó, bạn nên thay đổi một số trường tiêu đề của WAV đầu tiên để chúng có độ dài mới chính xác.
Giả sử chúng có cùng tốc độ bit, tỷ lệ mẫu và có cùng số kênh. – dreamlax
Tất nhiên, nhưng krosenvold nói rằng họ đã. – schnaader
Nhưng tôi có thực sự phải tự làm điều này không? Phải có một giải pháp đơn giản hơn ?? – krosenvold
Thách thức của bạn mặc dù xảy ra nếu hai tập tin WAV không có định dạng chính xác cùng trong tiêu đề sóng.
Nếu định dạng sóng trên hai tệp không giống nhau, bạn sẽ phải tìm cách truyền phát chúng để chúng khớp nhau.
Điều đó có thể bao gồm chuyển mã MP3 hoặc các loại chuyển mã khác (nếu một trong số chúng được mã hóa bằng codec MP3).
Tôi cho rằng tôi may mắn vì tôi không phải cân nhắc điều này. – krosenvold
Tôi tìm hiểu những gì Google-fu +1 :) –