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

📄 jmfapp-controller.html

📁 jmf指导文件参考资料
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</code><a name="91315"> </a><code>            waitTime = (long) ((float) mediaTimeToWait / -ourRate) /
</code><a name="91316"> </a><code>                1000000;
</code><a name="91317"> </a><code>        }
</code><a name="91318"> </a><code>        // Add one because we just rounded down and we don't 
</code><a name="91319"> </a><code>        // really want to waste CPU being woken up early.
</code><a name="91320"> </a><code>
</code><a name="91321"> </a><code>        waitTime++;
</code><a name="91334"> </a><code>
</code><a name="91327"> </a><code>        if (waitTime &gt; 0) 
</code><a name="91328"> </a><code>        {
</code><a name="91329"> </a><code>            // Bug in some systems deals poorly with really large 
</code><a name="91330"> </a><code>            // numbers. We will cap our wait() to 1000 seconds 
</code><a name="91331"> </a><code>            // which point we will probably decide to wait again.
</code></pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91340"> </a><code>            if (waitTime &gt; 1000000) waitTime = 1000000;
</code><a name="91341"> </a><code>            try 
</code><a name="91342"> </a><code>            {
</code><a name="91343"> </a><code>                wait (waitTime);
</code><a name="91344"> </a><code>            } 
</code><a name="91345"> </a><code>            catch (InterruptedException e) 
</code><a name="91346"> </a><code>            {
</code><a name="91347"> </a><code>            // NOT REACHED
</code><a name="91348"> </a><code>            }
</code><a name="91349"> </a><code>        }
</code><a name="91350"> </a><code>    }
</code><a name="91351"> </a><code>
</code><a name="91352"> </a><code>    public void close()
</code><a name="91353"> </a><code>    {
</code><a name="91354"> </a><code>
</code><a name="91355"> </a><code>    }
</code><a name="91356"> </a><code>
</code><a name="91357"> </a><code>    public Control getControl(String type)
</code><a name="91358"> </a><code>    {
</code><a name="91359"> </a><code>        return null;
</code><a name="91360"> </a><code>    }
</code><a name="91361"> </a><code>
</code><a name="91362"> </a><code>    public long getMediaNanoseconds()
</code><a name="91363"> </a><code>    {
</code><a name="91364"> </a><code>        return 0;
</code><a name="91365"> </a><code>    } 
</code><a name="91366"> </a><code>}
</code></pre>
</font></td>
  </tr>
</table>



<br></font>

<pre>
<a name="88428"> </a>
</pre>

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


<a name="91380"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif">

<table border="1" bordercolorlight="#FFFFFF" bordercolordark="#000000"
       cellpadding="5" cellspacing="0">
  <caption><b><i><font face="Palatino, Times New Roman, Times, serif"><a name="91386"> </a>Example E-2:  TimeLineEvent.java &nbsp;</font></i></b></caption>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91396"> </a><code>import javax.media.*;
</code><a name="91397"> </a><code>
</code><a name="91398"> </a><code>// TimeLineEvent is posted by TimeLineController when we have
</code><a name="91399"> </a><code>// switched segments in the time line.
</code><a name="91400"> </a><code>
</code><a name="91401"> </a><code>public class TimeLineEvent extends ControllerEvent 
</code><a name="91402"> </a><code>{
</code><a name="91403"> </a><code>    protected int segment;
</code><a name="91404"> </a><code>
</code><a name="91405"> </a><code>    public TimeLineEvent (Controller source, int currentSegment) 
</code><a name="91406"> </a><code>    {
</code><a name="91407"> </a><code>      super (source);
</code><a name="91408"> </a><code>      segment = currentSegment;
</code><a name="91409"> </a><code>    }
</code><a name="91410"> </a><code>
</code><a name="91411"> </a><code>    public final int getSegment () 
</code><a name="91412"> </a><code>    {
</code><a name="91413"> </a><code>      return segment;
</code><a name="91414"> </a><code>    }
</code><a name="91415"> </a><code>}</code>
</pre>
</font></td>
  </tr>
</table>



<br></font>


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


<a name="91431"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif">

<table border="1" bordercolorlight="#FFFFFF" bordercolordark="#000000"
       cellpadding="5" cellspacing="0">
  <caption><b><i><font face="Palatino, Times New Roman, Times, serif"><a name="91437"> </a>Example E-3:  EventPostingBase.java  (1 of 3)</font></i></b></caption>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91477"> </a>im<code>port javax.media.*;
</code><a name="91478"> </a><code>
</code><a name="91479"> </a><code>// import COM.yourbiz.media.EventPoster;
</code><a name="91480"> </a><code>
</code><a name="91481"> </a><code>// The implementation of the EventPoster class is not included as part
</code><a name="91482"> </a><code>// of this example. EventPoster supports two methods:
</code><a name="91483"> </a><code>// public EventPoster ();
</code><a name="91484"> </a><code>// public void postEvent (ControllerListener who, ControllerEvent
</code><a name="91485"> </a><code>//        what);
</code><a name="91486"> </a><code>
</code><a name="91487"> </a><code>public class EventPostingBase 
</code><a name="91488"> </a><code>{
</code><a name="91489"> </a><code>    protected ListenerList olist;
</code><a name="91490"> </a><code>    protected Object olistLock;
</code><a name="91491"> </a><code>    protected EventPoster eventPoster;
</code><a name="91505"> </a>    // We sync around a new object so that we don't mess with
<a name="91506"> </a>    // the super class synchronization.
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91525"> </a>    EventPostingBase () 
<a name="91526"> </a>    {
<a name="91527"> </a>        olistLock = new Object ();
<a name="91528"> </a>    }
<a name="91534"> </a>
<a name="91535"> </a>    public void addControllerListener (ControllerListener observer) 
<a name="91536"> </a>    {
<a name="91537"> </a>        synchronized (olistLock) 
<a name="91538"> </a>        {
<a name="91539"> </a>            if (eventPoster == null) 
<a name="91540"> </a>            {
<a name="91541"> </a>                eventPoster = new EventPoster ();
<a name="91542"> </a>            }   
<a name="91543"> </a>        
<a name="91544"> </a>            ListenerList iter;
<a name="91545"> </a>            for (iter = olist; iter != null; iter = iter.next) 
<a name="91546"> </a>            {
<a name="91547"> </a>                if (iter.observer == observer) return;
<a name="91548"> </a>            }
<a name="91549"> </a>
<a name="91550"> </a>            iter = new ListenerList ();
<a name="91551"> </a>            iter.next = olist;
<a name="91552"> </a>            iter.observer = observer;
<a name="91553"> </a>            olist = iter;  
<a name="91554"> </a>        }   
<a name="91555"> </a>    }
<a name="91561"> </a>
<a name="91562"> </a>    public void removeControllerListener (ControllerListener  observer) 
<a name="91563"> </a>    {
<a name="91564"> </a>        synchronized (olistLock) 
<a name="91565"> </a>        {
<a name="91566"> </a>            if (olist == null) 
<a name="91567"> </a>            {
<a name="91568"> </a>                return;
<a name="91569"> </a>            } 
<a name="91570"> </a>            else if (olist.observer == observer) 
<a name="91571"> </a>            {
<a name="91572"> </a>                olist = olist.next;
<a name="91573"> </a>            } 
<a name="91581"> </a>            else 
<a name="91582"> </a>            {
<a name="91583"> </a>                ListenerList iter;
<a name="91584"> </a>                for (iter = olist; iter.next != null; iter = iter.next) 
<a name="91585"> </a>                {
<a name="91586"> </a>                    if (iter.next.observer == observer) 
<a name="91587"> </a>                    {
<a name="91588"> </a>                        iter.next = iter.next.next;
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91601"> </a><code>                        return;
</code><a name="91602"> </a><code>                    }
</code><a name="91608"> </a><code>                }
</code><a name="91609"> </a><code>            }
</code><a name="91610"> </a><code>        }
</code><a name="91611"> </a><code>    }
</code><a name="91612"> </a><code>
</code><a name="91613"> </a><code>
</code><a name="91614"> </a><code>    protected void postEvent (ControllerEvent event) 
</code><a name="91615"> </a><code>    {
</code><a name="91616"> </a><code>        synchronized (olistLock) 
</code><a name="91617"> </a><code>        {
</code><a name="91618"> </a><code>            ListenerList iter;
</code><a name="91619"> </a><code>            for (iter = olist; iter != null; iter = iter.next) 
</code><a name="91620"> </a><code>            {
</code><a name="91621"> </a><code>                eventPoster.postEvent (iter.observer, event);
</code><a name="91622"> </a><code>            }
</code><a name="91623"> </a><code>        }
</code><a name="91624"> </a><code>    }
</code><a name="91625"> </a><code>}
</code></pre>
</font></td>
  </tr>
</table>



<br></font>


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


<a name="91628"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif">

<table border="1" bordercolorlight="#FFFFFF" bordercolordark="#000000"
       cellpadding="5" cellspacing="0">
  <caption><b><i><font face="Palatino, Times New Roman, Times, serif"><a name="91645"> </a>Example E-4:  ListenerList.java &nbsp;</font></i></b></caption>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91661"> </a><code>// A list of controller listeners that we are supposed to send
</code><a name="91662"> </a><code>// events to.
</code><a name="91663"> </a><code>
</code><a name="91664"> </a><code>class ListenerList 
</code><a name="91665"> </a><code>{
</code><a name="91666"> </a><code>    ControllerListener observer;
</code><a name="91667"> </a><code>    ListenerList next;
</code><a name="91668"> </a><code>}
</code></pre>
</font></td>
  </tr>
</table>



<br></font>


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


<a name="91682"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif">

<table border="1" bordercolorlight="#FFFFFF" bordercolordark="#000000"
       cellpadding="5" cellspacing="0">
  <caption><b><i><font face="Palatino, Times New Roman, Times, serif"><a name="91688"> </a>Example E-5:  EventPoster.java </font></i></b></caption>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="91695"> </a><code>class EventPoster 
</code><a name="91696"> </a><code>{
</code><a name="91697"> </a><code>    void postEvent(Object object, ControllerEvent evt)
</code><a name="91698"> </a><code>   {
</code><a name="91699"> </a><code>   // Post event.
</code><a name="91700"> </a><code>    }
</code><a name="91701"> </a><code>}
</code><a name="91690"> </a><code>
</code></pre>
</font></td>
  </tr>
</table>



<br></font>


<p>
  <a name="86805"> </a><font face="Palatino, Times New Roman, Times, serif"><strong></strong></font>
</p>
</blockquote>
<br clear="all">
<hr>
<a href="JMFTOC.html">CONTENTS</a> | 
<a href="JMFApp-DataSource.html">PREV </a> |
<a href="JMFApp-RTPUtil.html">NEXT</a> |
<a href="JMFIX.html">INDEX</a></td>
<br>
<hr>
<em>
<a href="copyright.html">Copyright</a> &copy;
1998-1999 Sun Microsystems, Inc. All Rights Reserved.
</em>
</body>
</html>

⌨️ 快捷键说明

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