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

📄 jmfarchitecture.html

📁 jmf指导文件参考资料
💻 HTML
📖 第 1 页 / 共 5 页
字号:
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100393"> </a><code>setRate</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100395"> </a><code>NotRealizedError</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100397"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100399"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100401"> </a><code>legal</code></font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100403"> </a><code>setStopTime</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100405"> </a><code>NotRealizedError</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100407"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100409"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100411"> </a><code>StopTimeSetError <br>if previously set</code></font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100413"> </a><code>setTimeBase</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100415"> </a><code>NotRealizedError</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100417"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100419"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100421"> </a><code>ClockStartedError</code></font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100423"> </a><code>syncStart</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100425"> </a><code>NotPrefetchedError</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100427"> </a><code>NotPrefetchedError</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100429"> </a><code>legal</code></font></td>
    <td><font face="Palatino, Times New Roman, Times, serif"><a name="100431"> </a><code>ClockStartedError</code></font></td>
  </tr>
</table>



<br></font>


<a name="100432"> </a><font  size="2" face="Palatino, Times New Roman, Times, serif">Table 2-1:   Method restrictions for players.<br></font>


<h4>
  <a name="112893"> </a><font color="#003366" face="Palatino, Times New Roman, Times, serif">Processors</font>
</h4>


<p>
  <a name="106558"> </a><font face="Palatino, Times New Roman, Times, serif"><code>Processors</code> can also be used to present media data. A <code>Processor</code> is just a specialized type of <code>Player</code> that provides control over what processing is performed on the input media stream. A <code>Processor</code> supports all of the same presentation controls as a <code>Player</code>.</font>
</p>


<a name="110480"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif"><img src="images/JMFArchitecture14.gif" height="105" width="478">
<br></font>


<a name="106581"> </a><font  size="2" face="Palatino, Times New Roman, Times, serif">Figure 2-13:   JMF processor model.<br></font>


<p>
  <a name="112898"> </a><font face="Palatino, Times New Roman, Times, serif">In addition to rendering media data to presentation devices, a <code>Processor</code> can output media data through a <code>DataSource</code> so that it can be presented by another <code>Player</code> or <code>Processor</code>, further manipulated by another <code>Processor</code>, or delivered to some other destination, such as a file. </font>
</p>


<p>
  <a name="106584"> </a><font face="Palatino, Times New Roman, Times, serif">For more information about <code>Processors</code>, see <a href="JMFArchitecture.html#105120">Processing</a>.</font>
</p>


<h4>
  <a name="106557"> </a><font color="#003366" face="Palatino, Times New Roman, Times, serif">Presentation Controls</font>
</h4>


<p>
  <a name="106627"> </a><font face="Palatino, Times New Roman, Times, serif">In addition to the standard presentation controls defined by <code>Controller</code>, a <code>Player</code> or <code>Processor</code> might also provide a way to adjust the playback volume. If so, you can retrieve its <code>GainControl</code> by calling <code>getGainControl</code>. A <code>GainControl</code> object posts a <code>GainChangeEvent</code> whenever the gain is modified. By implementing the <code>GainChangeListener</code> interface, you can respond to gain changes. For example, you might want to update a custom gain control <code>Component</code>.</font>
</p>


<p>
  <a name="106632"> </a><font face="Palatino, Times New Roman, Times, serif">Additional custom <code>Control</code> types might be supported by a particular <code>Player</code> or <code>Processor</code> implementation to provide other control behaviors and expose custom user interface components. You access these controls through the <code>getControls</code> method. </font>
</p>


<p>
  <a name="106634"> </a><font face="Palatino, Times New Roman, Times, serif">For example, the <code>CachingControl</code> interface extends <code>Control</code> to provide a mechanism for displaying a download progress bar. If a <code>Player</code> can report its download progress, it implements this interface. To find out if a <code>Player</code> supports <code>CachingControl</code>, you can call <code>getControl(CachingControl) or </code>use<code> getControls</code> to get a list of all the supported <code>Controls</code>.</font>
</p>


<h5>
  <a name="106647"> </a><i><font color="#003366" face="Palatino, Times New Roman, Times, serif">Standard User Interface Components</font></i>
</h5>


<p>
  <a name="106615"> </a><font face="Palatino, Times New Roman, Times, serif">A <code>Player</code> or <code>Processor</code> generally provides two standard user interface components, a visual component and a control-panel component.You can access these <code>Components</code> directly through the <code>getVisualComponent</code> and <code>getControlPanelComponent</code> methods. </font>
</p>


<p>
  <a name="106460"> </a><font face="Palatino, Times New Roman, Times, serif">You can also implement custom user interface components, and use the event listener mechanism to determine when they need to be updated.</font>
</p>


<h4>
  <a name="106146"> </a><font color="#003366" face="Palatino, Times New Roman, Times, serif">Controller Events</font>
</h4>


<p>
  <a name="106149"> </a><font face="Palatino, Times New Roman, Times, serif">The <code>ControllerEvents</code> posted by a <code>Controller</code> such as a <code>Player</code> or <code>Processor</code> fall into three categories: change notifications, closed events, and transition events:</font>
</p>

<ul>
  <li><a name="113816"> </a><font face="Palatino, Times New Roman, Times, serif">Change notification events such as <code>RateChangeEvent</code>, <code>DurationUpdateEvent</code>, and<code> FormatChangeEvent </code> indicate that some attribute of the <code>Controller</code> has changed, often in response to a method call. For example, a <code>Player</code> posts a <code>RateChangeEvent</code> when its rate is changed by a call to <code>setRate</code>.</font>
  <li><a name="113822"> </a><font face="Palatino, Times New Roman, Times, serif"><code>TransitionEvents</code> allow your program to respond to changes in a <code>Controller </code>object's<code> </code>state. A <code>Player</code> posts transition events whenever it moves from one state to another. (See <a href="JMFArchitecture.html#112886">Player States</a> for more information about the states and transitions.)</font>
  <li><a name="113826"> </a><font face="Palatino, Times New Roman, Times, serif"><code>ControllerClosedEvents</code> are posted by a <code>Controller</code> when it shuts down. When a <code>Controller</code> posts a <code>ControllerClosedEvent</code>, it is no longer usable. A <code>ControllerErrorEvent</code> is a special case of <code>ControllerClosedEvent</code>. You can listen for <code>ControllerErrorEvents</code> so that your program can respond to <code>Controller</code> malfunctions to minimize the impact on the user.</font>
</ul>

<a name="112347"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif"><img src="images/JMFArchitecture19.gif" height="614" width="478">
<br></font>


<a name="113808"> </a><font  size="2" face="Palatino, Times New Roman, Times, serif">Figure 2-14:   JMF events.<br></font>


<h3>
  <a name="105120"> </a><font color="#003366" face="Palatino, Times New Roman, Times, serif">Processing</font>
</h3>


<p>
  <a name="106771"> </a><font face="Palatino, Times New Roman, Times, serif">A <code>Processor</code> is a <code>Player</code> that takes a <code>DataSource</code> as input, performs some user-defined processing on the media data, and then outputs the processed media data. </font>
</p>


<a name="111833"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif"><img src="images/JMFArchitecture18.gif" height="176" width="478">
<br></font>


<a name="105812"> </a><font  size="2" face="Palatino, Times New Roman, Times, serif">Figure 2-15:   JMF processors.<br></font>


<p>
  <a name="112906"> </a><font face="Palatino, Times New Roman, Times, serif">A <code>Processor</code> can send the output data to a presentation device or to a <code>DataSource</code>. If the data is sent to a <code>DataSource</code>, that <code>DataSource</code> can be used as the input to another <code>Player</code> or <code>Processor</code>, or as the input to a <code>DataSink</code>.   </font>
</p>


<p>
  <a name="106717"> </a><font face="Palatino, Times New Roman, Times, serif">While the processing performed by a <code>Player</code> is predefined by the implementor, a <code>Processor</code> allows the application developer to define the type of processing that is applied to the media data. This enables the application of effects, mixing, and compositing in real-time. </font>
</p>


<p>
  <a name="106962"> </a><font face="Palatino, Times New Roman, Times, serif">The processing of the media data is split into several stages: </font>
</p>


<a name="111838"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif"><img src="images/JMFArchitecture5.gif" height="201" width="478">
<br></font>


<a name="99889"> </a><font  size="2" face="Palatino, Times New Roman, Times, serif">Figure 2-16:   Processor stages.<br></font>

<ul>
  <li><a name="112918"> </a><font face="Palatino, Times New Roman, Times, serif">Demultiplexing is the process of parsing the input stream. If the 

⌨️ 快捷键说明

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