Notice
Recent Posts
Recent Comments
Link
투케이2K
316. (kotlin/코틀린) [유틸 파일] 안드로이드 : videoPlayView : 비디오 재생 팝업창 호출 메소드 본문
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [VOID] : [비디오 재생 팝업창 호출 처리 메소드]
// -----------------------------------------------------------------------------------------
// TODO [호출 방법 소스 코드]
// -----------------------------------------------------------------------------------------
/*
try {
// [팝업창 활성 수행]
C_Ui_View.videoPlayView(A_Intro@this, "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", "알림", "", "확인")
}
catch (Exception e){
e.printStackTrace()
}
*/
// -----------------------------------------------------------------------------------------
fun videoPlayView(mContext: Context, url: String, title: String, message: String, ok: String) {
try {
// ===============================================================
S_Log._D_("비디오 재생 팝업창 호출 수행 실시", arrayOf(
"URL :: $url"
))
// ===============================================================
// [UI 생성 실시]
val videoView = VideoView(mContext)
videoView.setPadding(5, 5, 5, 5)
// [URL 데이터 널 체크 수행]
if (C_Util.stringNotNull(url) === true) { // [널 아님]
// TODO [로딩 프로그레스 동작]
startLoadingAlert(
mContext,
S_FinalMsg.AL_TITLE,
"비디오 재생 준비 중 입니다 .. 잠시만 기다려 주세요.",
""
)
// TODO [비디오 재생할 URL 지정]
videoView.setVideoURI(Uri.parse(url))
// TODO [비디오 재생 준비 완료 시]
videoView.setOnPreparedListener {
try {
S_Log._D_("비디오 재생 준비 완료", null)
// TODO [비디오 재생 시작]
videoView.start()
// TODO [로딩 프로그레스 종료]
stopLoadingAlert(mContext)
// TODO [토스트 알림]
toastShortNormal(mContext, "비디오 재생을 수행합니다.")
} catch (e: Exception) {
e.printStackTrace()
}
}
// TODO [비디오 재생 완료 시]
videoView.setOnCompletionListener {
S_Log._W_("비디오 영상 재생 완료", null)
// TODO [로딩 프로그레스 종료]
stopLoadingAlert(mContext)
//TODO [Alert 팝업창 알림 실시]
toastShortNormal(mContext, "비디오 영상 재생이 완료 되었습니다. ^0^")
}
// TODO [비디오 재생에 문제가 발생 시]
videoView.setOnErrorListener { mediaPlayer, i, i1 ->
S_Log._E_("비디오 재생 문제 발생", null)
// TODO [로딩 프로그레스 종료]
stopLoadingAlert(mContext)
//TODO [Alert 팝업창 알림 실시]
toastShortError(mContext, "비디오 영상 재생 중 문제가 발생했습니다. ㅠ0ㅠ")
false
}
// TODO [팝업창 생성 실시]
Handler(Looper.getMainLooper()).postDelayed({
if (mContext != null) {
// [AlertDialog 팝업창 생성]
AlertDialog.Builder(mContext)
.setTitle(title) //[팝업창 타이틀 지정]
//.setIcon(R.drawable.app_icon) //[팝업창 아이콘 지정]
.setMessage(message) //[팝업창 내용 지정]
.setView(videoView)
.setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
.setPositiveButton(ok) { dialog, which ->
// TODO Auto-generated method stub
// -----------------------------------------
// TODO [확인 버튼 클릭 이벤트 처리]
// -----------------------------------------
S_Log._D_("비디오 뷰 팝업창 호출 [확인] 클릭", null)
// -----------------------------------------
try {
// TODO [비디오 정지 실시]
if (videoView != null) {
videoView.stopPlayback()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
.show()
}
}, 0)
} else { // [널 임]
// TODO [로딩 프로그레스 종료]
stopLoadingAlert(mContext)
// [에러 팝업창 표시]
val error = arrayOf(
"설 명 :: URL 주소가 올바르지 않습니다. 주소를 다시 확인해 주세요.",
"URL :: $url"
)
C_Ui_View.errorShowListView(mContext, false, title, error, S_FinalMsg.AL_OK, "")
}
} catch (e: Exception) {
e.printStackTrace()
// TODO [로딩 프로그레스 종료]
stopLoadingAlert(mContext)
}
}
반응형
'Kotlin' 카테고리의 다른 글
Comments