399 lines
22 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.sound.sampled
</div>
<h2 class="title" title="Interface Line">Interface Line</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Superinterfaces:
</dt>
<dd>
<span><a href="../../../java/lang/AutoCloseable.html" title="java.lang中的接口">AutoCloseable</a></span>
</dd>
</dl>
<dl>
<dt>
All Known Subinterfaces:
</dt>
<dd>
<span><a href="../../../javax/sound/sampled/Clip.html" title="javax.sound.sampled中的接口">Clip</a> <a href="../../../javax/sound/sampled/DataLine.html" title="javax.sound.sampled中的接口">DataLine</a> <a href="../../../javax/sound/sampled/Mixer.html" title="javax.sound.sampled中的接口">Mixer</a> <a href="../../../javax/sound/sampled/Port.html" title="javax.sound.sampled中的接口">Port</a> <a href="../../../javax/sound/sampled/SourceDataLine.html" title="javax.sound.sampled中的接口">SourceDataLine</a> <a href="../../../javax/sound/sampled/TargetDataLine.html" title="javax.sound.sampled中的接口">TargetDataLine</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">Line</span>
extends <a href="../../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></pre>
<div class="block">
<span>所述<code>Line</code>接口表示单声道或多声道音频馈送。</span>
<span>线是数字音频“流水线”的一个元素,例如混频器,输入或输出端口,或进入或离开混频器的数据路径。</span>
<p> <span>线可以有控制,如增益,平移和混响。</span> <span>控件本身就是扩展基础<code><a href="../../../javax/sound/sampled/Control.html" title="class in javax.sound.sampled"><code>Control</code></a></code>类的类的实例。</span> <span><code>Line</code>接口提供两种访问方法来获取线路的控件: <code><a href="../../../javax/sound/sampled/Line.html#getControls--"><code>getControls</code></a></code>返回整个集合,而<code><a href="../../../javax/sound/sampled/Line.html#getControl-javax.sound.sampled.Control.Type-"><code>getControl</code></a></code>返回指定类型的单个控件。</span> </p>
<p> <span>线条在不同时期存在于各种状态。</span> <span>当一条线路打开时,它将为其自身保留系统资源,当它关闭时,这些资源被释放用于其他对象或应用程序。</span> <span><code><a href="../../../javax/sound/sampled/Line.html#isOpen--"><code>isOpen()</code></a></code>方法可以让您发现线路是开放还是关闭。</span> <span>然而,开线不需要处理数据。</span> <span>这种处理通常由诸如<code><a href="../../../javax/sound/sampled/SourceDataLine.html#write-byte:A-int-int-"><code>SourceDataLine.write</code></a></code><code><a href="../../../javax/sound/sampled/TargetDataLine.html#read-byte:A-int-int-"><code>TargetDataLine.read</code></a></code>之类的<code><a href="../../../javax/sound/sampled/SourceDataLine.html#write-byte:A-int-int-"><code>SourceDataLine.write</code></a></code>接口方法来<code><a href="../../../javax/sound/sampled/TargetDataLine.html#read-byte:A-int-int-"><code>TargetDataLine.read</code></a></code></span> </p>
<p> <span>每当线路状态发生变化时,您可以注册一个对象来接收通知。</span> <span>该对象必须实现<code><a href="../../../javax/sound/sampled/LineListener.html" title="interface in javax.sound.sampled"><code>LineListener</code></a></code>接口,它由单方法<code><a href="../../../javax/sound/sampled/LineListener.html#update-javax.sound.sampled.LineEvent-"><code>update</code></a></code></span> <span>当线路打开和关闭时(如果是<a href="../../../javax/sound/sampled/DataLine.html" title="javax.sound.sampled中的接口"><code>DataLine</code></a> ,启动和停止),将调用此方法。</span> </p>
<p> <span>可以注册一个对象来监听多行。</span> <span>它接收在其事件<code>update</code>方法将指定哪些线创建的事件,这是什么类型的事件( <code>OPEN</code> <code>CLOSE</code> <code>START</code> ,或<code>STOP</code> )许多样品如何帧的行,并在事件发生的时间已经处理。</span> </p>
<p> <span>某些行操作(如打开和关闭)可以在线路是共享音频资源时由非特权代码调用时生成安全异常。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/sampled/LineEvent.html" title="javax.sound.sampled中的类"><code>LineEvent</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- --> </a> <h3>Nested Class Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption>
<span>Nested Classes</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.Info.html" title="class in javax.sound.sampled">Line.Info</a></span></code>
<div class="block">
<code>Line.Info</code>对象包含有关行的信息。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#addLineListener-javax.sound.sampled.LineListener-">addLineListener</a></span>(<a href="../../../javax/sound/sampled/LineListener.html" title="interface in javax.sound.sampled">LineListener</a> listener)</code>
<div class="block">
在此行添加一个侦听器。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#close--">close</a></span>()</code>
<div class="block">
关闭该行,表示可以释放该行所使用的任何系统资源。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../javax/sound/sampled/Control.html" title="class in javax.sound.sampled">Control</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#getControl-javax.sound.sampled.Control.Type-">getControl</a></span>(<a href="../../../javax/sound/sampled/Control.Type.html" title="class in javax.sound.sampled">Control.Type</a> control)</code>
<div class="block">
获取指定类型的控件,如果有的话。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../../javax/sound/sampled/Control.html" title="class in javax.sound.sampled">Control</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#getControls--">getControls</a></span>()</code>
<div class="block">
获取与此行相关联的一组控件。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../../javax/sound/sampled/Line.Info.html" title="class in javax.sound.sampled">Line.Info</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#getLineInfo--">getLineInfo</a></span>()</code>
<div class="block">
获取描述此行的
<code>Line.Info</code>对象。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#isControlSupported-javax.sound.sampled.Control.Type-">isControlSupported</a></span>(<a href="../../../javax/sound/sampled/Control.Type.html" title="class in javax.sound.sampled">Control.Type</a> control)</code>
<div class="block">
指示线路是否支持指定类型的控制。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#isOpen--">isOpen</a></span>()</code>
<div class="block">
表示线路是否打开,这意味着它已经预留了系统资源并且可以运行,尽管它可能当前没有播放或捕获声音。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#open--">open</a></span>()</code>
<div class="block">
打开该行,表明它应该获取任何所需的系统资源并运行。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/sampled/Line.html#removeLineListener-javax.sound.sampled.LineListener-">removeLineListener</a></span>(<a href="../../../javax/sound/sampled/LineListener.html" title="interface in javax.sound.sampled">LineListener</a> listener)</code>
<div class="block">
从此行的侦听器列表中删除指定的侦听器。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getLineInfo--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getLineInfo</h4> <pre><a href="../../../javax/sound/sampled/Line.Info.html" title="class in javax.sound.sampled">Line.Info</a> getLineInfo()</pre>
<div class="block">
获取描述此行的
<code>Line.Info</code>对象。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
线的描述
</dd>
</dl> </li>
</ul> <a name="open--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>open</h4> <pre>void open()
throws <a href="../../../javax/sound/sampled/LineUnavailableException.html" title="class in javax.sound.sampled">LineUnavailableException</a></pre>
<div class="block">
<span>打开该行,表明它应该获取任何所需的系统资源并运行。</span>
<span>如果此操作成功,该行将被标记为打开,并且<code>OPEN</code>事件将调度到该行的监听器。</span>
<p> <span>请注意,一旦关闭,一些行不能重新打开。</span> <span>尝试重新打开此行将始终导致<code>LineUnavailableException</code></span> </p>
<p> <span>某些类型的行具有可能影响资源分配的可配置属性。</span> <span>例如, <code>DataLine</code>必须以特定格式和缓冲区大小打开。</span> <span>这样的行应该提供一种用于配置这些属性的机制,例如允许应用程序指定所需设置的<code>open</code>方法或方法。</span> </p>
<p> <span>此方法不使用参数,并打开与当前设置的行。</span> <span>对于<code><a href="../../../javax/sound/sampled/SourceDataLine.html" title="interface in javax.sound.sampled"><code>SourceDataLine</code></a></code><code><a href="../../../javax/sound/sampled/TargetDataLine.html" title="interface in javax.sound.sampled"><code>TargetDataLine</code></a></code>对象,这意味着该行以默认设置打开。</span> <span>但是,对于<code><a href="../../../javax/sound/sampled/Clip.html" title="interface in javax.sound.sampled"><code>Clip</code></a></code> ,在加载数据时确定缓冲区大小。</span> <span>由于此方法不允许应用程序指定要加载的任何数据因此将抛出IllegalArgumentException异常。</span> <span>因此,你应该使用的一个<code>open</code>种提供的方法<code>Clip</code>接口将数据加载到<code>Clip</code></span> </p>
<p> <span>对于<code>DataLine</code> ,如果用于检索该行的<code>DataLine.Info</code>对象指定了至少一个完全限定的音频格式,则最后一个将被用作默认格式。</span> </p>
</div>
<dl>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果在Clip实例上调用此方法。
</dd>
<dd>
<code><a href="../../../javax/sound/sampled/LineUnavailableException.html" title="class in javax.sound.sampled">LineUnavailableException</a></code> - 如果由于资源限制,该行无法打开。
</dd>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果由于安全限制,该行无法打开。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/sampled/Line.html#close--"><code>close()</code></a> <a href="../../../javax/sound/sampled/Line.html#isOpen--"><code>isOpen()</code></a> <a href="../../../javax/sound/sampled/LineEvent.html" title="javax.sound.sampled中的类"><code>LineEvent</code></a> <a href="../../../javax/sound/sampled/DataLine.html" title="javax.sound.sampled中的接口"><code>DataLine</code></a> <a href="../../../javax/sound/sampled/Clip.html#open-javax.sound.sampled.AudioFormat-byte:A-int-int-"><code>Clip.open(AudioFormat, byte[], int, int)</code></a> <a href="../../../javax/sound/sampled/Clip.html#open-javax.sound.sampled.AudioInputStream-"><code>Clip.open(AudioInputStream)</code></a></span>
</dd>
</dl> </li>
</ul> <a name="close--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>close</h4> <pre>void close()</pre>
<div class="block">
<span>关闭该行,表示可以释放该行所使用的任何系统资源。</span>
<span>如果此操作成功,该行将被标记为关闭,并且<code>CLOSE</code>事件将发送到该行的监听器。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../java/lang/AutoCloseable.html#close--">close</a></code>在界面
<code><a href="../../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果线路由于安全限制而无法关闭。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/sampled/Line.html#open--"><code>open()</code></a> <a href="../../../javax/sound/sampled/Line.html#isOpen--"><code>isOpen()</code></a> <a href="../../../javax/sound/sampled/LineEvent.html" title="javax.sound.sampled中的类"><code>LineEvent</code></a></span>
</dd>
</dl> </li>
</ul> <a name="isOpen--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>isOpen</h4> <pre>boolean isOpen()</pre>
<div class="block">
表示线路是否打开,这意味着它已经预留了系统资源并且可以运行,尽管它可能当前没有播放或捕获声音。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果行是打开的,否则
<code>false</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/sampled/Line.html#open--"><code>open()</code></a>
<a href="../../../javax/sound/sampled/Line.html#close--"><code>close()</code></a>
</dd>
</dl> </li>
</ul> <a name="getControls--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getControls</h4> <pre><a href="../../../javax/sound/sampled/Control.html" title="class in javax.sound.sampled">Control</a>[] getControls()</pre>
<div class="block">
<span>获取与此行相关联的一组控件。</span>
<span>某些控件只有在线路打开时才可用。</span>
<span>如果没有控件此方法返回一个长度为0的数组。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
控件的数组
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/sampled/Line.html#getControl-javax.sound.sampled.Control.Type-"><code>getControl(javax.sound.sampled.Control.Type)</code></a>
</dd>
</dl> </li>
</ul> <a name="isControlSupported-javax.sound.sampled.Control.Type-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>isControlSupported</h4> <pre>boolean isControlSupported(<a href="../../../javax/sound/sampled/Control.Type.html" title="class in javax.sound.sampled">Control.Type</a> control)</pre>
<div class="block">
<span>指示线路是否支持指定类型的控制。</span>
<span>某些控件只有在线路打开时才可用。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>control</code> - 查询支持的控件的类型
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果支持指定类型的至少一个控件,否则
<code>false</code>
</dd>
</dl> </li>
</ul> <a name="getControl-javax.sound.sampled.Control.Type-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getControl</h4> <pre><a href="../../../javax/sound/sampled/Control.html" title="class in javax.sound.sampled">Control</a> getControl(<a href="../../../javax/sound/sampled/Control.Type.html" title="class in javax.sound.sampled">Control.Type</a> control)</pre>
<div class="block">
<span>获取指定类型的控件,如果有的话。</span>
<span>某些控件只有在线路打开时才可用。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>control</code> - 请求的控件的类型
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
指定类型的控制
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果不支持指定类型的控件
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/sampled/Line.html#getControls--"><code>getControls()</code></a>
<a href="../../../javax/sound/sampled/Line.html#isControlSupported-javax.sound.sampled.Control.Type-"><code>isControlSupported(Control.Type control)</code></a>
</dd>
</dl> </li>
</ul> <a name="addLineListener-javax.sound.sampled.LineListener-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>addLineListener</h4> <pre>void addLineListener(<a href="../../../javax/sound/sampled/LineListener.html" title="interface in javax.sound.sampled">LineListener</a> listener)</pre>
<div class="block">
<span>在此行添加一个侦听器。</span>
<span>每当行的状态发生变化时,监听器的<code>update()</code>方法将使用描述更改的<code>LineEvent</code>对象进行调用。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>listener</code> - 作为监听器添加到此行的对象
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/sampled/Line.html#removeLineListener-javax.sound.sampled.LineListener-"><code>removeLineListener(javax.sound.sampled.LineListener)</code></a> <a href="../../../javax/sound/sampled/LineListener.html#update-javax.sound.sampled.LineEvent-"><code>LineListener.update(javax.sound.sampled.LineEvent)</code></a> <a href="../../../javax/sound/sampled/LineEvent.html" title="javax.sound.sampled中的类"><code>LineEvent</code></a></span>
</dd>
</dl> </li>
</ul> <a name="removeLineListener-javax.sound.sampled.LineListener-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>removeLineListener</h4> <pre>void removeLineListener(<a href="../../../javax/sound/sampled/LineListener.html" title="interface in javax.sound.sampled">LineListener</a> listener)</pre>
<div class="block">
从此行的侦听器列表中删除指定的侦听器。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>listener</code> - 要删除的监听器
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/sampled/Line.html#addLineListener-javax.sound.sampled.LineListener-"><code>addLineListener(javax.sound.sampled.LineListener)</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>