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

📄 audiofiletypes.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
/* *	AudioFileTypes.java *//* *  Copyright (c) 2000 by Florian Bomers <florian@bome.com> * * *   This program is free software; you can redistribute it and/or modify *   it under the terms of the GNU Library General Public License as published *   by the Free Software Foundation; either version 2 of the License, or *   (at your option) any later version. * *   This program is distributed in the hope that it will be useful, *   but WITHOUT ANY WARRANTY; without even the implied warranty of *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *   GNU Library General Public License for more details. * *   You should have received a copy of the GNU Library General Public *   License along with this program; if not, write to the Free Software *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */package	org.tritonus.share.sampled;import javax.sound.sampled.AudioFileFormat;import org.tritonus.share.StringHashedSet;/** * This class is a proposal for generic handling of audio file format types. * The main purpose is to provide a standardized way of * implementing audio file format types. Like this, file types * are only identified by their String name, and not, as currently, * by their object instance. * <p> * A standard registry of file type names will * be maintained by the Tritonus team. * <p> * In a specification request to JavaSoft, these static methods * could be integrated into<code>AudioFileFormat.Type</code>. The static  * instances of AIFF, AIFC, AU, SND, and WAVE types in class * <code>AudioFileFormat.Type</code> should be retrieved * using this method, too (internally).<br> * At best, the protected constructor of that class * should also be replaced to be a private constructor. * Like this it will be prevented that developers create * instances of Type, which causes problems with the * equals method. In fact, the equals method should be redefined anyway * so that it compares the names and not the objects. * <p> * Also, the file name extension should be deprecated and moved * to <code>AudioFileFormat</code>. There are some file formats * which have varying extensions depending, e.g. on the encoding. * An example for this is MPEG: the special encoding Mpeg 1, layer 3 * has the extension mp3, whereas other Mpeg files use mpeg or mpg.<br> * This could be implemented with 2 methods in <code>AudioFileFormat</code>: * <ol><li>String[] getFileExtensions(): returns all usable extensions *         for this file. *     <li>String getDefaultFileExtension(): returns the preferred extension. * </ol> * * @author Florian Bomers */public class AudioFileTypes extends AudioFileFormat.Type {	/** contains all known types */	private static StringHashedSet types = new StringHashedSet();	// initially add the standard types	static {		types.add(AudioFileFormat.Type.AIFF);		types.add(AudioFileFormat.Type.AIFC);		types.add(AudioFileFormat.Type.AU);		types.add(AudioFileFormat.Type.SND);		types.add(AudioFileFormat.Type.WAVE);	}	AudioFileTypes(String name, String ext) {		super(name, ext);	}	/**	 * Use this method to retrieve an instance of	 * <code>AudioFileFormat.Type</code> of the specified	 * name. If no type of this name is in the internally	 * maintained list, <code>null</code> is returned.	 * <p>	 * This method is supposed to be used by user programs.	 * <p>	 * In order to assure a well-filled internal list,	 * call <code>AudioSystem.getAudioFileTypes()</code>	 * at initialization time.	 *	 * @see #getType(String, String)	 */	public static AudioFileFormat.Type getType(String name) {		return getType(name, null);	}	/**	 * Use this method to retrieve an instance of	 * <code>AudioFileFormat.Type</code> of the specified	 * name. If it does not exist in the internal list	 * of types, a new type is created and returned. 	 * If it a type of that name already exists (regardless 	 * of extension), it is returned. In this case it can 	 * not be guaranteed that the extension is the same as	 * passed as parameter.<br>	 * If <code>extension</code> is <code>null</code>,	 * this method returns <code>null</code> if the	 * type of the specified name does not exist in the	 * internal list.	 * <p>	 * This method is supposed to be used by file providers.	 * Every file reader and file writer provider should	 * exclusively use this method for retrieving instances	 * of <code>AudioFileFormat.Type</code>.	 */	public static AudioFileFormat.Type getType(String name, String extension) {		AudioFileFormat.Type res=(AudioFileFormat.Type) types.get(name);		if (res==null) {			// it is not already in the string set. 			if (extension==null) {				return null;			}			// Create a new type instance.			res=new AudioFileTypes(name, extension);			// and save it for the future			types.add(res);		}		return res;	}	/**	 * Tests for equality of 2 file types. They are equal when their names match.	 * <p>	 * This function should be AudioFileFormat.Type.equals and must	 * be considered as a temporary workaround until it flows into the	 * JavaSound API.	 */	// IDEA: create a special "NOT_SPECIFIED" file type	// and a AudioFileFormat.Type.matches method.	public static boolean equals(AudioFileFormat.Type t1, AudioFileFormat.Type t2) {		return t2.toString().equals(t1.toString());	}	}/*** AudioFileTypes.java ***/

⌨️ 快捷键说明

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