Guest User

Untitled

a guest
Mar 3rd, 2018
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. public class MainActivity extends Activity implements MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
  2. final static String USERNAME = "xxxxx";
  3. final static String PASSWORD = "xxxxx";
  4. final static String RTSP_URL = "rtsp://xxxxx:xxxxx@192.168.1.102/cam/realmonitor?channel=1&subtype=0";
  5.  
  6. private MediaPlayer _mediaPlayer;
  7. private SurfaceHolder _surfaceHolder;
  8.  
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12.  
  13. // Set up a full-screen black window.
  14. requestWindowFeature(Window.FEATURE_NO_TITLE);
  15. Window window = getWindow();
  16. window.setFlags(
  17. WindowManager.LayoutParams.FLAG_FULLSCREEN,
  18. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  19. window.setBackgroundDrawableResource(android.R.color.black);
  20.  
  21. setContentView(R.layout.activity_main);
  22.  
  23. // Configure the view that renders live video.
  24. SurfaceView surfaceView =
  25. (SurfaceView) findViewById(R.id.surfaceView);
  26. _surfaceHolder = surfaceView.getHolder();
  27. _surfaceHolder.addCallback(this);
  28. _surfaceHolder.setFixedSize(320, 240);
  29. }
  30.  
  31. /*
  32. SurfaceHolder.Callback
  33. */
  34.  
  35. @Override
  36. public void surfaceChanged(
  37. SurfaceHolder sh, int f, int w, int h) {}
  38.  
  39. @Override
  40. public void surfaceCreated(SurfaceHolder sh) {
  41. _mediaPlayer = new MediaPlayer();
  42. _mediaPlayer.setDisplay(_surfaceHolder);
  43.  
  44. Context context = getApplicationContext();
  45. Map<String, String> headers = getRtspHeaders();
  46. Uri source = Uri.parse(RTSP_URL);
  47.  
  48. try {
  49. // Specify the IP camera's URL and auth headers.
  50. _mediaPlayer.setDataSource(context, source, headers);
  51.  
  52. // Begin the process of setting up a video stream.
  53. _mediaPlayer.setOnPreparedListener(this);
  54. _mediaPlayer.prepareAsync();
  55. }
  56. catch (Exception e) {}
  57. }
  58.  
  59. @Override
  60. public void surfaceDestroyed(SurfaceHolder sh) {
  61. _mediaPlayer.release();
  62. }
  63.  
  64. private Map<String, String> getRtspHeaders() {
  65. Map<String, String> headers = new HashMap<String, String>();
  66. String basicAuthValue = getBasicAuthValue(USERNAME, PASSWORD);
  67. headers.put("Authorization", basicAuthValue);
  68. return headers;
  69. }
  70.  
  71. private String getBasicAuthValue(String usr, String pwd) {
  72. String credentials = usr + ":" + pwd;
  73. int flags = Base64.URL_SAFE | Base64.NO_WRAP;
  74. byte[] bytes = credentials.getBytes();
  75. return "Basic " + Base64.encodeToString(bytes, flags);
  76. }
  77.  
  78. /*
  79. MediaPlayer.OnPreparedListener
  80. */
  81. @Override
  82. public void onPrepared(MediaPlayer mp) {
  83. _mediaPlayer.start();
  84. }
  85. }
Add Comment
Please, Sign In to add comment