⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recordsaver.java

📁 JMF制作的截取音频文件代码 运行SecFrame.java
💻 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 + -