我有一个摄像头,可以将 .bin 视频流式传输到网站,我想在我的 Android 应用程序中显示该视频。
由于某种原因,它甚至在 WebView 中也没有显示,我该怎么解决这个问题?我尝试使用毕加索库,但没有成功。我也尝试过类似的方法,但也不起作用:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView = findViewById(R.id.videoView);
Uri uri = Uri.parse(videoUrl);
videoView.setVideoURI(uri);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
mediaController.setMediaPlayer(videoView);
videoView.setMediaController(mediaController);
videoView.start();
我想通了,对于任何对此感兴趣的人来说,代码是:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL(getIP.url);
try {
//http parametre
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(1000 * 5);
connection.setReadTimeout(1000 * 5);
connection.setDoInput(true);
connection.connect();
InputStream in = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String data;
int len;
byte[] buffer;
while ((data = br.readLine()) != null) {
if (data.contains("Content-Type:")) {
data = br.readLine();
len = Integer.parseInt(data.split(":")[1].trim());
bis = new BufferedInputStream(in);
buffer = new byte[len];
int t = 0;
while (t < len) {
t += bis.read(buffer, t, len - t);
}
Bytes2ImageFile(buffer, getExternalFilesDir(Environment.DIRECTORY_PICTURES) + "/0A.jpg");
final Bitmap bitmap = BitmapFactory.decodeFile(getExternalFilesDir(Environment.DIRECTORY_PICTURES) + "/0A.jpg");
runOnUiThread(new Runnable() {
@Override
public void run() {
//connectButton.setText("OFF");
imageView.setImageBitmap(bitmap);
}
});
}
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} finally {
try {
if (bis != null) {
bis.close();}
if (fos != null) {
fos.close();}
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
thread.start();