如何流IP CAM在android的html/htm



我正在写一个android应用程序,显示从我的ip摄像头流。我面临的问题是,当我在浏览器中输入摄像头的url并经过身份验证时,它会显示一个显示流的html页面,url为

http://192.168.1.103:81你可以

我已经做了很多谷歌搜索,并尝试了几个代码,但他们都失败了,因为他们假设url为http://ip:port/video.mjpeg之类的东西在我的情况下,我没有视频,但一个html页面流视频,因此无法获得流编程。请帮助我完成我的期末论文设计。提前感谢!!(((

package com.example.ipcam;
import java.util.HashMap;
import java.util.Map;
import com.example.ipcam.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity implements           MediaPlayer.OnPreparedListener , SurfaceHolder.Callback {
final static String USERNAME = "admin";
final static String PASSWORD = "";
final static String Rtsp_URL = "http://192.168.1.103:81/index.htm";
private MediaPlayer _mediaPlayer;
private SurfaceHolder _surfaceHolder;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    Window window = getWindow();
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    window.setBackgroundDrawableResource(android.R.color.black);
    setContentView(R.layout.activity_main);
    SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
    _surfaceHolder = surfaceView.getHolder();
    _surfaceHolder.addCallback(this);
    _surfaceHolder.setFixedSize(320, 240);
}
@Override
public void surfaceChanged(SurfaceHolder sh, int f, int w, int h) {}
@Override
public void surfaceCreated(SurfaceHolder sh){
    _mediaPlayer=new MediaPlayer();
    _mediaPlayer.setDisplay(_surfaceHolder);
    Context context = getApplicationContext();
    Map<String, String>headers = getRtspHeaders();
    Uri source = Uri.parse(Rtsp_URL);
    try{
        _mediaPlayer.setDataSource(context, source, headers);
         _mediaPlayer.setOnPreparedListener(this);
         _mediaPlayer.prepareAsync();
    }
          catch (Exception e) {
              }
          }

        @Override
        public void surfaceDestroyed(SurfaceHolder sh) {
          _mediaPlayer.release();
        }
        private Map<String, String> getRtspHeaders() {
              Map<String, String> headers = new HashMap<String, String>();
              String basicAuthValue = getBasicAuthValue(USERNAME, PASSWORD);
              headers.put("Authorization", basicAuthValue);
              return headers;
            }
            private String getBasicAuthValue(String usr, String pwd) {
              String credentials = usr + ":" + pwd;
              int flags = Base64.URL_SAFE | Base64.NO_WRAP;
              byte[] bytes = credentials.getBytes();
              return "Basic " + Base64.encodeToString(bytes, flags);
            }
            @Override
            public void onPrepared(MediaPlayer mp) {
              _mediaPlayer.start();
            }
}

我试过http://ijoshsmith.com/2014/01/25/video-streaming-from-an-ip-camera-to-an-android-phone

http://visitor:visitor@888.888.888.888:88/videostream.cgi

使用这个来自动登录到摄像机,访问者是访问者的用户名和密码

最新更新