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

📄 outputqueue.java

📁 这是java 开发的的免费语音播放插件,很值得学习参考!!!!!!!!!!!!111
💻 JAVA
字号:
/** * Portions Copyright 2004 Sun Microsystems, Inc. * Portions Copyright 1999-2004 Language Technologies Institute,  * Carnegie Mellon University. * All Rights Reserved.  Use is subject to license terms. *  * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL  * WARRANTIES. */package com.sun.speech.freetts;import java.util.LinkedList;/** * Manages a process queue for utterances. Utterances that are * queued to a processor can be written via the post method. * A processing thread can wait for an utterance to arrive via the * pend method. */public class OutputQueue {    private LinkedList list = new LinkedList();    private int size;    private final static int DEFAULT_SIZE = 5;    private volatile boolean closed = false;    /**     * Creates an OutputQueue with the given size.     *      * @param size the size of the queue     */    public OutputQueue(int size) {	this.size = size;    }    /**     * Creates a queue with the default size.     */    public OutputQueue() {	this(DEFAULT_SIZE);    }    /**     * Posts the given utterance to the queue. This call will block if     * the queue is full.     *      * @param utterance the utterance to post     *     * @throws IllegalStateException if the queue is closed     */    public synchronized void post(Utterance utterance) {	if (closed) {	    throw new IllegalStateException("output queue closed");	}	while (list.size() >= size) {	    try {		wait();	    } catch (InterruptedException ie) {	    }	}	list.add(utterance);	notify();    }    /**     * Closes the queue.     */    public synchronized void close() {	closed = true;	list.add(null);	notify();    }    /**     * Determines if the queue is closed.     *     * @return  true the queue is closed; otherwise false     */    public boolean isClosed() {	return closed;    }    /**     * Blocks until there is an utterance in the queue.     *     * @return the next utterance. On a close or interrupt, a null is     * returned.     */    public synchronized Utterance pend() {	Utterance utterance = null;	while (list.size() == 0) {	    try {		wait();	    } catch (InterruptedException ie) {		return null;	    }	}	utterance = (Utterance) list.removeFirst();	notify();	return utterance;    }    /**     * Removes all items from this OutputQueue.     */    public synchronized void removeAll() {        list.clear();    }}

⌨️ 快捷键说明

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