首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UDP图像流Android

UDP图像流Android
EN

Stack Overflow用户
提问于 2017-10-04 16:09:44
回答 1查看 844关注 0票数 1

我希望通过UDP套接字将从摄像头捕捉到的帧发送到我的android应用程序,并将它们显示为实时流。我可以在Android应用程序接收图像,但我只能显示单个图像。不是小溪。我所做的事情如下。

代码语言:javascript
运行
复制
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更新,但它很少用相当大的延迟更新图像。如何使接收到的图像以实时流的形式显示在应用程序上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-10 07:04:20

AsyncTask对象只能执行一次,因此我无法接收流。但我是通过跟踪我来实现的。

我重写了onPostExecute()以返回从套接字接收到的单个图像。删除了我对publishProgress() in doInBackground()的调用。最后一步是重新初始化扩展AsyncTask的类对象,并在onPostExecute()中执行它,即创建一个新对象,并在onPostExecute()中对其进行asyncobject.execute().get()。希望它能帮上忙,其他面临同样问题的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46569478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档