분류 전체보기
-
안드로이드 MediaPlayer mp4 비디오 재생 예제 (+VideoView)Android 2020. 7. 22. 00:09
안드로이드에서 비디오 파일을 재생하는 방법에 대해 남겨보려 한다. 초창기부터 비디오 플레이가 핵심 기능이었던 스마트폰의 역사에 걸맞게 안드로이드도 비디오 파일 재생에 있어서는 다양하고 편한 여러 가지 방법들을 제공한다. 거의 모든 안드로이드 폰에서 하드웨어 가속이 뒷받침 되기에 범용적으로 많이 쓰이는 미디어 파일들의 경우 전혀 무리없이 재생이 가능하다. 이번에는 여러 가지 방법들 중 가장 쉬운 VideoView를 활용한 방법과 한 단계 더 나아가서 MediaPlayer를 직접적으로 사용하는 방법에 대해서 남겨보려 한다. 미디어 컨트롤, 해상도 변경, 스트리밍 처리, 레이어 애니메이션 등 고급 주제는 배제하고 단순히 APK내부에 포함된 비디오 파일을 재생하는데 집중하겠다. VideoView 비디오뷰는 안드..
-
안드로이드 Glide와 CircleImageView로 원형 이미지 표시Android 2020. 7. 20. 20:33
안드로이드 작업을 하던 중 이미지뷰를 동그랗게 표시해야 하는 상황을 만났다. 카카오톡의 프로필 사진이 동그랗게 표시되는 것과 유사한 형태의 작업이었다. 당연히 안드로이드의 기본 UI를 통해 아주 간단하게 할 수 있을줄 알았는데, 세상 일이 그리 만만치 않았다. 언제나 나를 실망시키지 않는 안드로이드에 실망하면서 방법을 찾아보니 꼼수로 원형으로 뚤린 프레임을 만들어 이미지뷰 위에 덮어 씌우는 방법이 가장 간단한 방법인 것 같았다. 그런데, 내 경우에는 원형 뒤의 배경이 투명이어서 적용이 불가능한 방법이었다. 가장 정석대로 하려면 최종 Texture를 건드릴 수 있는 TextureView를 만들어 쉐이더로 연산을 하는 방법이 있는데 이 방법은 내가 하려는 일에 비해 배보다 배꼽이 큰 방법이었다. 결국 결론 ..
-
안드로이드 AsyncTask의 doInBackground 호출 안됨Android 2020. 7. 19. 22:40
AsyncTask를 사용하던 중 doInBackground()가 호출이 되지 않는 상황을 겪게 되었다. 복잡한 앱이 아닌 단순 클릭킹 프로토타입을 만들던 중에 일어난 일이라 황당할 따름이었다. 대략 화면을 터치하면 화면이 전환되며 4개의 작은 동영상이 동시에 재생되는 너무나 간단한 작업이라 아무 생각 없이 AsyncTask 4개를 돌렸는데 1개만 재생이 되는 현상이 나타났다. 찾아보니 문제의 원인은 AsyncTask가 이름의 뉘앙스와는 어울리지 않게 기본적으로 싱글 스레드에서 실행이 되었기 때문이었다. 영상 재생 후 다른 작업을 같이 하려고 무한루프에서 2초 정도씩 슬립하며 추가 작업을 수행했는데 이게 문제였다. 이 무한 루프가 끝날 때까지 다른 AsyncTask들이 끝날 기약없는 대기를 타고 있었던 것..
-
WWDC 2020 요약Analysis 2020. 6. 23. 23:03
2020년 6월 22일 WWDC 2020의 키노트가 시작되었다. 애플 개발자들 뿐만 아니라 경쟁사들까지 모두 주목하는 최대의 행사이지만, 코로나 바이러스의 여파로 전례없이 온라인으로만 열리게 된다. 세월이 흐른 것인지 화면에 등장한 팀 쿡의 모습이 더 늙어 보이는게 많은 생각이 들게 한다. 최근 미국의 인종 갈등을 주제로 말문을 연 팀 쿡은 코로나 바이러스에 대처하는 의료진을 격려하며 연설을 시작한다. 이어진 WWDC의 키노트는 전통에 따라 소프트웨어 중심이었으며 2019년과 동일하게 OS별로 소개가 이루어졌다. 개인적으로 이번 WWDC 2020을 관통하는 키워드는 Privacy와 Automation이라고 본다. Privacy는 반독점 제재를 의식한 것일 수도 있겠다는 추측이 되는데, 반복해서 언급되는 ..
-
IHodgepodge 2020. 5. 6. 16:57
조그만 나는 무서운 게 많았다. 달리는 것보다 생각하는 게 좋았던 아이는 그래서 꿈꾸기를 좋아했다 방구석에서 우주를 상상할 때면 마냥 신났다. 아직 보지 못한 것들을 그리며 예정되지 않은 미래의 가능성에 아이는 행복했다. 젊은 나는 무서운 게 없었다. 머리 쓰기에 능한 젊은이에게 지금 세상은 좋은 놀이터였다. 강인한 두 날개에는 힘이 넘쳐 더 높이 나는 이들조차 전혀 두렵지 않았다. 언젠가 창공을 지나 어린 시절 꿈꾸던 우주를 날거라 확신했다. 늙어가는 나는 두려움을 느낀다. 행여 저 거센 바람에 쓰러져 내 뒤를 천진하게 따르는 조그만 내가 다칠까 너무나 무섭다. 더 이상 꿈꾸지 못해도 괜찮다. 저 높은 언덕 위로 작은 나를 무사히 데려가면 족하다. 자꾸 삐걱대는 날개가 제발 버텨주기를 소망하며 오늘도 ..
-
[Unity] 유니티 2D UI Canvas 타겟으로 VideoPlayer 사용Unity 2020. 4. 29. 19:47
오디오와 마찬가지로 유니티에서 비디오를 재생하는 간단한 방법이 추가되었다. VideoPlayer가 그것인데 이것을 이용해 여러 비디오 파일을 플랫폼 독립적으로 재생할 수 있다. VideoPlayer를 사용하는 방법에 대해서는 유니티 공식 문서나 다른 웹문서들에서 쉽게 찾아볼 수 있다. 대부분 문서의 경우 3D 오브젝트의 표면에 비디오를 출력하는 상황을 설명한다. 그런데 내 경우에는 2D앱을 만드는 중이라 2D Canvas 위에 비디오를 출력해야 했다. 나와 같은 고민을 하는 사람들을 위해 방법을 남겨본다. 방법의 핵심은 UI Canvas 위에 RawImage 형태의 오브젝트를 만들고, 이 오브젝트의 texture를 VideoPlayer의 타겟으로 만드는 것이다. 지금부터 간단한 예제를 통해 방법을 설명하..
-
Virtualbox 우분투 게스트에서 윈도우 호스트로 삼바(Samba) 공유Knowledge 2020. 4. 28. 20:56
리눅스 기반의 프로젝트를 할 때, 소스코드 편집을 윈도우즈에서 하는 편이다. 간단한 프로젝트의 경우 우분투를 Virtualbox의 가상 머신에서 돌리고, 편집은 호스트의 윈도우즈에서 하는 형태를 선호하곤 한다. 이 상황에서 호스트 윈도우즈의 공유폴더를 Virtualbox 게스트 우분투 내부로 공유하는 방법은 Virtualbox에서 기본으로 제공된다. GUI에서 쉽게 공유폴더를 설정할 수 있는 이 방식에 대한 설명은 많이 나와 있어 쉽게 사용할 수 있다. 하지만 이 공유 폴더는 기본적으로 윈도우즈에 존재하고, 우분투에서 접근하는 형태이다. 대부분의 경우 이 방식으로 작업해도 문제가 없었지만, Git에 있는 소스코드를 내려받아 작업을 하던 중, 윈도우즈에서 작업할 경우 리눅스의 심볼릭 링크가 깨지는 경우나 ..
-
아이폰 메일 취약점 분석: iOS Zero Click MailAnalysis 2020. 4. 26. 18:16
애플 ios의 기본 탑재 앱 중 하나인 mail 앱에서 보안 취약점이 발견되었다. 이 취약점은 ZecOps에서 발표하였는데, 자세한 정보는 여기에서 찾을 수 있다. 다른 취약점들보다 여파가 커질 수 있는 문제이기에 떠들썩하고, 적반하장이긴 하지만 안드로이드 진영에서는 이 때다 싶어서 공격을 퍼붓기도 한다. 어떤 os이거나 취약점이 발견되고 수정되는 것은 일상적인 일이지만 개인적으로도 이 취약점의 경우 조금 심각해 보이기는 한다. 높은 점유율 가장 먼저 주목할 점은 애플의 mail 앱의 점유율이 높다는 점이다. (참조) 조사마다 차이는 있겠지만 구글의 gmail에 필적하는 30%에 육박하는 점유율을 가지고 있다. 실상 아이폰 사용자의 대다수가 사용하고 있다는 것이다. 아직 밝혀지지는 않았지만 이 취약점을 ..