用appletviewer 在目标板可以显示视频图片  
而远程用IE打开  则总是只显示一幅图像
目标板 DM365 运行的服务器 是 BOA代码如下,求大神指导import java.awt.*;
import java.applet.*;
import java.net.*;public class HelloApplet extends Applet {
  private Image  myImage = null;  private int startIndex = 1;
  private int endIndex = 9;
  private int currentIndex;  private int sleepTime = 33;  private String fileBase;
  private String fileExtension;  private Thread timerThread;
  private volatile boolean noStopRequested;
  private MediaTracker tracker;  public void init() {
    tracker = new MediaTracker(this);
    //String strStartIndex = getParameter("STARTINDEX");
    //String strEndIndex   = getParameter("ENDINDEX");
    //String strSleepTime  = getParameter("MSDELAY");
    fileBase             = "image";//getParameter("FILEBASE");
    fileExtension        = ".jpg";//getParameter("FILEEXT");   /* if (strStartIndex != null)
startIndex = Integer.parseInt(strStartIndex);
    if (strEndIndex != null)
endIndex = Integer.parseInt(strEndIndex);
    if (strSleepTime != null)
sleepTime = Integer.parseInt(strSleepTime);*/    startThread();
  }  private void startThread() {
    noStopRequested = true;    Runnable r = new Runnable() {
      public void run() {
        runWork();
      }
    };    timerThread = new Thread(r, "Timer");
    timerThread.start();
  }  private void stopThread() {
    noStopRequested = false;
    timerThread.interrupt();
  }  private void runWork() {
    currentIndex = startIndex;
    boolean imageload = false;
    int numLossImgs;
    long supposedTime;
    int totalImages;
    long currTime;    supposedTime = System.currentTimeMillis()+33;
    totalImages = endIndex - startIndex + 1;
    try {
      while ( noStopRequested ) {
        if( imageload == true ) {
  tracker.removeImage(myImage);
  myImage.flush();
  myImage = null;
}
        myImage = getImage(getDocumentBase(), fileBase + Integer.toString(currentIndex) + fileExtension);
tracker.addImage(myImage, 0);
tracker.waitForAll();
imageload = true;        repaint(); currTime = System.currentTimeMillis();
if ( currTime < supposedTime ) {
    currentIndex = currentIndex + 1;
    if( currentIndex > endIndex )
currentIndex = startIndex;
    supposedTime += 33;
    Thread.sleep( supposedTime - currTime );
} else {
    numLossImgs = (int)((currTime-supposedTime)/33 + 1); 
    currentIndex += numLossImgs;
    while ( currentIndex > endIndex )
currentIndex -= totalImages;
    supposedTime += numLossImgs*33;
    Thread.sleep( supposedTime - currTime );
}
      }
    } catch ( InterruptedException x ) {
Thread.currentThread().interrupt();
    }
  }  public void paint(Graphics g) {
    update(g);
  }  public void update(Graphics g) {
    if( myImage != null ) {
      g.drawImage(myImage, 0, 0, this);
    }
  }  public void destroy() {
    stopThread();
    myImage.flush();
    myImage = null;
  }
}

解决方案 »

  1.   

    可能是IE的安全限制或者对applet支持不够好,也可能是网速不过可能性很小,我们当时也用boa做过视频服务器,局域网没有卡的迹象,服务器系统为linux2.6吧好像,你看看是不是解码出问题了.
      

  2.   

    我已经找到问题了 是applet从服务器缓冲好了十幅图像图片后,因为要重新载入的图片名与以前的一样,所以applet就不再向服务器下载被更新过的图片了  还是显示的缓冲好的的图片 看起来像一幅一样就是更新显示图片怎么弄??
      

  3.   

    有意思啊   居然还有这种问题,是不是applet都会有这种问题啊