gpt4 book ai didi

android - UDP图像流Android

转载 作者:行者123 更新时间:2023-12-03 12:08:56 24 4
gpt4 key购买 nike

我想将通过网络摄像头捕获的帧通过UDP套接字发送到我的android应用程序,并显示它们,使其看起来像是实时流。我可以在Android App上接收图像,但只能显示单个图像。不是流。
我所做的是跟随。

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

如果我反复按Connect(连接)按钮,则会以流的形式获取图像。我已经尝试过onProgress更新,但是它很少频繁地更新图像。如何使这些接收到的图像作为实时流显示在应用程序上。

最佳答案

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

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

关于android - UDP图像流Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com