📄 recordsaver.java
字号:
package util;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.media.DataSink;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoDataSinkException;
import javax.media.NotRealizedError;
import javax.media.Processor;
import javax.media.datasink.DataSinkEvent;
import javax.media.datasink.DataSinkListener;
import javax.media.datasink.EndOfStreamEvent;
public class RecordSaver {
public static void saveVedio(Processor p, String filePath) {
File file = new File(filePath);
DataSink ds = null;
MediaLocator ml = null;
try {
URL url = file.toURI().toURL();
System.out.println(url.toString());
ml = new MediaLocator(url);
ds = Manager.createDataSink(p.getDataOutput(), ml);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (NoDataSinkException e) {
e.printStackTrace();
} catch (NotRealizedError e) {
e.printStackTrace();
}
// 添加事件侦听器,当到达文件尾部时,关闭DataSink
ds.addDataSinkListener(new DataSinkListener() {
public void dataSinkUpdate(DataSinkEvent e) {
if (e instanceof EndOfStreamEvent) {
DataSink tempDS = e.getSourceDataSink();
try {
tempDS.stop();
tempDS.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
// 打开DataSink,并开始数据转换
try {
ds.open();
ds.start();
} catch (IOException e1) {
e1.printStackTrace();
}
}
public static void saveAudio(Processor p, String filePath) {
File file = new File(filePath);
DataSink ds = null;
MediaLocator ml = null;
try {
URL url = file.toURI().toURL();
ml = new MediaLocator(url);
ds = Manager.createDataSink(p.getDataOutput(), ml);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (NoDataSinkException e) {
e.printStackTrace();
} catch (NotRealizedError e) {
e.printStackTrace();
}
// 添加事件侦听器,当到达文件尾部时,关闭DataSink
ds.addDataSinkListener(new DataSinkListener() {
public void dataSinkUpdate(DataSinkEvent e) {
if (e instanceof EndOfStreamEvent) {
DataSink tempDS = e.getSourceDataSink();
try {
tempDS.stop();
tempDS.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
// 打开DataSink,并开始数据转换
try {
ds.open();
ds.start();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -