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

📄 wavaudioformat.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package com.sun.media.format;import java.util.Hashtable;import javax.media.Format;import javax.media.format.AudioFormat;import net.sf.fmj.utility.FormatUtils;/** * Coding complete. * @author Ken Larson * */public class WavAudioFormat extends AudioFormat{	public static final int WAVE_FORMAT_PCM = 1;	public static final int WAVE_FORMAT_ADPCM = 2;	public static final int WAVE_FORMAT_ALAW = 6;	public static final int WAVE_FORMAT_MULAW = 7;	public static final int WAVE_FORMAT_OKI_ADPCM = 16;	public static final int WAVE_FORMAT_DIGISTD = 21;	public static final int WAVE_FORMAT_DIGIFIX = 22;	public static final int WAVE_FORMAT_GSM610 = 49;	public static final int WAVE_IBM_FORMAT_MULAW = 257;	public static final int WAVE_IBM_FORMAT_ALAW = 258;	public static final int WAVE_IBM_FORMAT_ADPCM = 259;	public static final int WAVE_FORMAT_DVI_ADPCM = 17;	public static final int WAVE_FORMAT_SX7383 = 7175;	public static final int WAVE_FORMAT_DSPGROUP_TRUESPEECH = 34;	public static final int WAVE_FORMAT_MSNAUDIO = 50;	public static final int WAVE_FORMAT_MSG723 = 66;	public static final int WAVE_FORMAT_MPEG_LAYER3 = 85;	public static final int WAVE_FORMAT_VOXWARE_AC8 = 112;	public static final int WAVE_FORMAT_VOXWARE_AC10 = 113;	public static final int WAVE_FORMAT_VOXWARE_AC16 = 114;	public static final int WAVE_FORMAT_VOXWARE_AC20 = 115;	public static final int WAVE_FORMAT_VOXWARE_METAVOICE = 116;	public static final int WAVE_FORMAT_VOXWARE_METASOUND = 117;	public static final int WAVE_FORMAT_VOXWARE_RT29H = 118;	public static final int WAVE_FORMAT_VOXWARE_VR12 = 119;	public static final int WAVE_FORMAT_VOXWARE_VR18 = 120;	public static final int WAVE_FORMAT_VOXWARE_TQ40 = 121;	public static final int WAVE_FORMAT_VOXWARE_TQ60 = 129;	public static final int WAVE_FORMAT_MSRT24 = 130;		protected byte[] codecSpecificHeader;	private int averageBytesPerSecond = NOT_SPECIFIED;		public static final Hashtable formatMapper = new Hashtable();	public static final Hashtable reverseFormatMapper = new Hashtable();		public WavAudioFormat(String encoding)	{		super(encoding);	}		public WavAudioFormat(String encoding, double sampleRate, int sampleSizeInBits, int channels, int frameSizeInBits, int averageBytesPerSecond, byte[] codecSpecificHeader)	{			// averageBytesPerSecond seems to be substituted for frameRate.		super(encoding, sampleRate, sampleSizeInBits, channels, NOT_SPECIFIED, NOT_SPECIFIED,				frameSizeInBits, averageBytesPerSecond /*frameRate*/, byteArray);			this.averageBytesPerSecond = averageBytesPerSecond;		this.codecSpecificHeader = codecSpecificHeader;		}		public WavAudioFormat(String encoding, double sampleRate, int sampleSizeInBits, int channels, int frameSizeInBits, int averageBytesPerSecond, int endian, int signed, float frameRate, Class dataType, byte[] codecSpecificHeader)	{		// averageBytesPerSecond seems to be substituted for frameRate.		super(encoding, sampleRate, sampleSizeInBits, channels, endian, signed,				frameSizeInBits, averageBytesPerSecond /*frameRate*/, dataType);		this.averageBytesPerSecond = averageBytesPerSecond;		this.codecSpecificHeader = codecSpecificHeader;	}		public int getAverageBytesPerSecond()	{	return averageBytesPerSecond;	}	public byte[] getCodecSpecificHeader()	{	return codecSpecificHeader;	}		public boolean equals(Object format)	{			if (!super.equals(format))			return false;				if (!(format instanceof WavAudioFormat))			{			return false;		}				final WavAudioFormat oCast = (WavAudioFormat) format;		return 			this.averageBytesPerSecond == oCast.averageBytesPerSecond &&			this.codecSpecificHeader == oCast.codecSpecificHeader;	// TODO: equals or ==	}		public boolean matches(Format format)	{			if (!super.matches(format))			return false;				if (!(format instanceof WavAudioFormat))			return true;				final WavAudioFormat oCast = (WavAudioFormat) format;		return 			FormatUtils.matches(this.averageBytesPerSecond, oCast.averageBytesPerSecond) &&			FormatUtils.matches(this.codecSpecificHeader, oCast.codecSpecificHeader);	}		public Format intersects(Format other)	{					final Format result = super.intersects(other);		if (other instanceof WavAudioFormat)		{			final WavAudioFormat resultCast = (WavAudioFormat) result;						final WavAudioFormat oCast = (WavAudioFormat) other;			if (getClass().isAssignableFrom(other.getClass()))			{					// "other" was cloned.								if (FormatUtils.specified(this.averageBytesPerSecond))					resultCast.averageBytesPerSecond = this.averageBytesPerSecond;				if (FormatUtils.specified(this.codecSpecificHeader))					resultCast.codecSpecificHeader = this.codecSpecificHeader;											}			else if (other.getClass().isAssignableFrom(getClass()))			{	// this was cloned								if (!FormatUtils.specified(resultCast.averageBytesPerSecond))					resultCast.averageBytesPerSecond = oCast.averageBytesPerSecond;				if (!FormatUtils.specified(resultCast.codecSpecificHeader))					resultCast.codecSpecificHeader = oCast.codecSpecificHeader;										}		}		return result;	}	public Object clone()	{		return new WavAudioFormat(encoding, sampleRate, sampleSizeInBits,				channels, frameSizeInBits, averageBytesPerSecond, endian, signed, (float) frameRate, dataType, codecSpecificHeader);	}		protected void copy(Format f)	{			super.copy(f);		final WavAudioFormat oCast = (WavAudioFormat) f;	// it has to be a WavAudioFormat, or ClassCastException will be thrown.		this.averageBytesPerSecond = oCast.averageBytesPerSecond;		this.codecSpecificHeader = oCast.codecSpecificHeader;			}		static	{			// TODO: what are these used for?		formatMapper.put(new Integer(1), "LINEAR");		formatMapper.put(new Integer(2), "msadpcm");		formatMapper.put(new Integer(6), "alaw");		formatMapper.put(new Integer(7), "ULAW");		formatMapper.put(new Integer(17), "ima4/ms");		formatMapper.put(new Integer(34), "truespeech");		formatMapper.put(new Integer(49), "gsm/ms");		formatMapper.put(new Integer(50), "msnaudio");		formatMapper.put(new Integer(85), "mpeglayer3");		formatMapper.put(new Integer(112), "voxwareac8");		formatMapper.put(new Integer(113), "voxwareac10");		formatMapper.put(new Integer(114), "voxwareac16");		formatMapper.put(new Integer(115), "voxwareac20");		formatMapper.put(new Integer(116), "voxwaremetavoice");		formatMapper.put(new Integer(117), "voxwaremetasound");		formatMapper.put(new Integer(118), "voxwarert29h");		formatMapper.put(new Integer(119), "voxwarevr12");		formatMapper.put(new Integer(120), "voxwarevr18");		formatMapper.put(new Integer(121), "voxwaretq40");		formatMapper.put(new Integer(129), "voxwaretq60");		formatMapper.put(new Integer(130), "msrt24");						reverseFormatMapper.put("alaw", new Integer(6));		reverseFormatMapper.put("gsm/ms", new Integer(49));		reverseFormatMapper.put("ima4/ms", new Integer(17));		reverseFormatMapper.put("linear", new Integer(1));		reverseFormatMapper.put("mpeglayer3", new Integer(85));		reverseFormatMapper.put("msadpcm", new Integer(2));		reverseFormatMapper.put("msnaudio", new Integer(50));		reverseFormatMapper.put("msrt24", new Integer(130));		reverseFormatMapper.put("truespeech", new Integer(34));		reverseFormatMapper.put("ulaw", new Integer(7));		reverseFormatMapper.put("voxwareac10", new Integer(113));		reverseFormatMapper.put("voxwareac16", new Integer(114));		reverseFormatMapper.put("voxwareac20", new Integer(115));		reverseFormatMapper.put("voxwareac8", new Integer(112));		reverseFormatMapper.put("voxwaremetasound", new Integer(117));		reverseFormatMapper.put("voxwaremetavoice", new Integer(116));		reverseFormatMapper.put("voxwarert29h", new Integer(118));		reverseFormatMapper.put("voxwaretq40", new Integer(121));		reverseFormatMapper.put("voxwaretq60", new Integer(129));		reverseFormatMapper.put("voxwarevr12", new Integer(119));		reverseFormatMapper.put("voxwarevr18", new Integer(120));	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -