안드로이드
안드로이드 코틀린 비디오뷰 IP카메라, CCTV rtsp 스트리밍 재생 하기 / android kotlin videoview rtsp
캬옹냐옹
2021. 1. 15. 14:54
728x90
val uri = "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"
fragCameraVideiView?.setVideoURI(Uri.parse(uri))
fragCameraVideiView?.requestFocus()
fragCameraVideiView?.start()
//VideiView 로딩 완료 처리
fragCameraVideiView.setOnPreparedListener {
}
//VideiView 로딩 완료 처리 END
//VideiView 에러 처리
fragCameraVideiView.setOnErrorListener(MediaPlayer.OnErrorListener { mp, what, extra ->
when (what) {
MediaPlayer.MEDIA_ERROR_UNKNOWN -> {
this.handleExtras(extra)
}
MediaPlayer.MEDIA_ERROR_SERVER_DIED -> {
this.handleExtras(extra)
}
}
true
})
//VideiView 에러 처리 END
//VideiView 에러 처리 출력 부분
fun handleExtras(extra : Int){
when(extra) {
MediaPlayer.MEDIA_ERROR_IO -> {
toast.cancel()
toast = Toast.makeText(this, "파일 또는 네트워크를 확인하세요.", Toast.LENGTH_SHORT)
toast.setGravity(Gravity.CENTER, 0, 0)
toast.show()
}
MediaPlayer.MEDIA_ERROR_MALFORMED -> {
toast.cancel()
toast = Toast.makeText(this, "파일 사양을 확인하세요.", Toast.LENGTH_SHORT)
toast.setGravity(Gravity.CENTER, 0, 0)
toast.show()
}
MediaPlayer.MEDIA_ERROR_UNSUPPORTED -> {
toast.cancel()
toast = Toast.makeText(this, "비디오파일 색인을 확인하세요.", Toast.LENGTH_SHORT)
toast.setGravity(Gravity.CENTER, 0, 0)
toast.show()
}
MediaPlayer.MEDIA_ERROR_TIMED_OUT -> {
toast.cancel()
toast = Toast.makeText(this, "네트워크 연결시간이 초과 되었습니다.", Toast.LENGTH_SHORT)
toast.setGravity(Gravity.CENTER, 0, 0)
toast.show()
}
-2147483648 -> { //MEDIA_ERROR_SYSTEM (-2147483648) - low-level system error.
toast.cancel()
toast = Toast.makeText(this, "네트워크 연결시간이 초과 되었습니다.", Toast.LENGTH_SHORT)
toast.setGravity(Gravity.CENTER, 0, 0)
toast.show()
}
}
}
//VideiView 에러 처리 출력 부분 END
어플에 IP카메라, CCTV 영상을 스트리밍 할 방법을 찾다가 RTSP 를 이용해서 재생 하는 방법을 찾을 수 있었다
위에 코드는 실제 구동 테스트한 코드이다.
728x90