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

📄 datasource.java

📁 It is Java for SIP phone
💻 JAVA
字号:
/* * DataSource.java * * Created on March 20, 2003, 8:56 AM */package gov.nist.media.protocol.live;import javax.media.Time;import javax.media.protocol.ContentDescriptor;import javax.media.protocol.FileTypeDescriptor;import javax.media.protocol.PullDataSource;import java.io.IOException;/** * A default data-source created directly from an array of byte * This Data source allow one to play or play back a buffer filled by MPEG_AUDIO * or GSM audio data *  * @author Jean Deruelle <jean.deruelle@nist.gov> * * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a> */public class DataSource extends PullDataSource {	protected ContentDescriptor contentType;	protected ByteStream[] sources; 	protected boolean connected;	protected byte[] buffer;        /**     * Construct a <CODE>DataSource</CODE> unconnected containing nothing     * The <CODE>setBuffer</CODE> method need to be called to process data     */	public DataSource(){		connected=false;	}     	 /**	 * Construct a <CODE>DataSource</CODE> from a byte array.	 * @param input - the array of byte used to construct the DataSource	 * @param contentType - the content Type of the Data Source	 * @throws IOException - if there is an I/O problem	 */	public DataSource(byte[] input, String contentType) throws IOException {		buffer = input;		this.contentType = new ContentDescriptor(contentType);		connected = false;	}    	/**	 * The <CODE>connect</CODE> method initiates communication with the source.	 *	 * @exception IOException Thrown if there are IO problems	 * when <CODE>connect</CODE> is called.	 */	public void connect() throws java.io.IOException {		connected = true;			}    	/**	 * The <CODE>disconnect</CODE> method frees resources used to maintain a	 * connection to the source.	 * If no resources are in use, <CODE>disconnect</CODE> is ignored.	 */	public void disconnect() {		if(connected) {												sources[0].close();			sources=null;			buffer=null;						connected = false;		}	}    	/**	 * Get a string that describes the content-type of the media	 * that the source is providing.	 * <p>	 * It is an error to call <CODE>getContentType</CODE> if the source is	 * not connected.	 *	 * @return The name that describes the media content.	 */	public String getContentType() {		if( !connected) {	   		throw new java.lang.Error("Source is unconnected.");		}		if(contentType!=null)			return contentType.getContentType();		else			//return new ContentDescriptor(FileTypeDescriptor.MPEG_AUDIO).getContentType();			return new ContentDescriptor(FileTypeDescriptor.GSM).getContentType();	}		/**	 * @see javax.media.Controls#getControl(java.lang.String)	 */    public Object getControl(String str) {		return null;	}    /**     * @see javax.media.Controls#getControls()     */	public Object[] getControls() {		return new Object[0];	}    /**     * @see javax.media.Duration#getDuration()     */	public Time getDuration() {		return new Time(5.0);	}    	/**	 * Get the collection of streams that this source	 * manages. The collection of streams is entirely	 * content dependent. The  MIME type of this	 * <CODE>DataSource</CODE> provides the only indication of	 * what streams can be available on this connection.	 *	 * @return The collection of streams for this source.	 */	public javax.media.protocol.PullSourceStream[] getStreams() {		if( !connected) {	   		throw new java.lang.Error("Source is unconnected.");		}		return sources;	}    	/**	 * Initiate data-transfer. The <CODE>start</CODE> method must be	 * called before data is available.	 *(You must call <CODE>connect</CODE> before calling <CODE>start</CODE>.)	 *	 * @exception IOException Thrown if there are IO problems with the source	 * when <CODE>start</CODE> is called.	 */	public void start() throws IOException {	}    	/**	 * Stop the data-transfer.	 * If the source has not been connected and started,	 * <CODE>stop</CODE> does nothing.	 */	public void stop() throws IOException {			}		/**	 * Set the buffer of this <code>DataSource</code>	 * @param buffer	 */	public void setBuffer(byte[] buffer){		this.buffer=buffer;		sources = new ByteStream [1];		sources[0] = new ByteStream(buffer);	}}

⌨️ 快捷键说明

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