我需要序列化一個音頻剪輯到一個文件,作爲另一個數據 結構的一部分,不幸的是,音頻剪輯似乎不可序列化。是否有可以作爲代理序列化的 對象。根據需要,我可以在AudioClip之間移動 和之前的東西?解決方法,以序列化一個java audioClip
我想這個簡單的代碼/類
import java.applet.AudioClip;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.URL;
import javax.swing.JApplet;
public class RandomClass implements Serializable {
private AudioClip myAudioClip;
private int RandomInteger;
private String RandomString;
public RandomClass(String soundpath){
soundpath = soundpath.replace(" ", "%20");
soundpath = soundpath.replace("\\", "/");
try{
URL sound = new URL("file:/"+soundpath);
myAudioClip = JApplet.newAudioClip(sound);
}catch(Exception e){
e.printStackTrace();
}
}
public void serializeMe(){
try{
FileOutputStream fout = new FileOutputStream("c:\\serialized.ser");
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(this);
oos.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String args[]){
RandomClass d = new RandomClass("C:\\audioclip.wav");
d.serializeMe();
}
}
我得到一個java.io.NotSerializableException:sun.applet.AppletAudioClip
什麼其實我想要的是與其他成員一起保存的音頻剪輯一個序列化文件中的對象或類型。因此,無論何時我重新加載文件(實際上會包含這些RandomClass對象的arrayList),我都會獲得每個這些RandomClass對象的每個數據成員,而無需將原始audioclip保留在硬盤上(即,我想創建某種包含audioclip作爲其數據成員的一部分的對象的歸檔)。我還需要能夠播放音頻剪輯,而無需將它們保存回* .wav到硬盤上。就像VLC可以在一個zip文件中播放整個播放列表而無需提取每個片段。 有什麼建議嗎?
感謝,
只保存字節。 – EJP
@EJB那麼,我還需要能夠在重新加載後播放音頻剪輯,並且我不知道如何從字節數組到音頻剪輯。我不想保存到* .wav的字節才能播放剪輯 –
爲什麼不能?就是這樣。 – EJP