代码之家  ›  专栏  ›  技术社区  ›  mibrahimy

UDP图像流Android

  •  1
  • mibrahimy  · 技术社区  · 7 年前

    我所做的如下。

    public class getImage extends AsyncTask<String, Bitmap, Bitmap> {
    protected void onProgressUpdate(Bitmap... values) {
        Log.i("onProgressUpdate", "done");
        imageDisplay.setImageBitmap(values[0]); //imageDisplay is an ImageView on UI
        imageDisplay.invalidate();
    }//end of onProgressUpdate
    
    
    protected Bitmap doInBackground(String... params) {
    //receive an image over socket
    publishProgress(bitmapimage); //update on UI
    return bitmapimage;
    
    }//end of getImage
    
    
    public void ConnectionButton(View v) {
    Connect = (Button) findViewById(R.id.Connect);
    //while(true) {
         try {
              clientsocket = new DatagramSocket(9999);
    
            } catch (IOException e) {
              Log.i("Connection", "exception while creating socket");
            }
    
         try {
              getImage obj = new getImage();
              receivedImage = obj.execute("9999").get(); //receive image and over stream
              //obj.onProgressUpdate(receivedImage);
    
           }
       catch(Exception e){
       e.printStackTrace();
    }
        //}//endof while
    }//end of ConnectionButton
    

    如果我反复按连接按钮,就会得到流式图像。我已经尝试了onProgress更新,但它很少更新图像,延迟相当大。如何使这些接收到的图像作为实时流显示在应用程序上。

    1 回复  |  直到 7 年前
        1
  •  0
  •   mibrahimy    7 年前

    AsyncTask

    我越权了 onPostExecute() 返回从套接字接收的单个图像。删除了我对的呼叫 publishProgress() 在里面 doInBackground() . 最后一步是重新初始化扩展AsyncTask的类对象,并在 onPostExecute() i、 e.创建新对象,并 asyncobject.execute().get()