当您使用 ip webcam 时,请确保您的所有设备都连接到同一台服务器。
第二件事是您必须一次又一次地刷新网址才能获得最新的图像。我认为这是您刷新 url 的主要问题。我建议您为此使用处理程序,等待特定时间然后再次刷新 url 或在您的情况下刷新 api。
Read more about handler
我正在添加我一次又一次启动处理程序的项目的源代码
公共类 CounterActivity 扩展 AppCompatActivity {
TextView textView;
private boolean started = false;
private PowerManager.WakeLock wl;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_counter);
textView=findViewById(R.id.points);
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "My:Tag");
// 屏幕停留在此部分
start();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final String URL="http://172.16.16.108:8080/wallgame/api/game_points";
StringRequest request=
new StringRequest(Request.Method.GET, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object=new JSONObject(response);
JSONObject data=object.getJSONObject("data");
int points=Integer.parseInt(data.getString("game_points"));
textView.setText(points+"");
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(CounterActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
);
RequestQueue queue= Volley.newRequestQueue(CounterActivity.this);
queue.add(request);
}
},1000);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
final String URL="http://172.16.16.108:8080/wallgame/api/game_points";
StringRequest request=
new StringRequest(Request.Method.GET, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject object=new JSONObject(response);
JSONObject data=object.getJSONObject("data");
int points=Integer.parseInt(data.getString("game_points"));
textView.setText(points+"");
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(CounterActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
);
RequestQueue queue= Volley.newRequestQueue(CounterActivity.this);
queue.add(request);
start();
}
};
public void onDestroy() {
super.onDestroy();
started = false;
handler.removeCallbacks(runnable);
if (wl.isHeld())
wl.release();
}
public void start(){
started = true;
handler.postDelayed(runnable, 1500);
}
}