일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Koin
- Kotlin
- databinding
- Animation
- list
- 동영상
- google play
- RxKotlin
- MediaSession
- paging
- Observable
- node.js
- liveData
- SWIFTUI
- android13
- Android 13
- Android
- MediaPlayer
- SwiftUI Tutorial
- node
- mysql
- MotionLayout
- 인앱결제
- PagingLib
- Reactive
- GCP
- rx
- 테스트 자동화
- junit
- mvvm
- Today
- Total
목록Android (53)
봄날은 갔다. 이제 그 정신으로 공부하자
이번 글에서는 오디오 출력을 제어하는 방식에 대해 설명합니다. * 참고 사이트: https://developer.android.com/guide/topics/media-apps/audio-focus 두 개 이상의 Android 앱이 동일한 출력 스트림으로 동시에 오디오를 재생할 수 있습니다. 이때 시스템은 오디오를 혼합하여 출력합니다. 동시에 오디오가 혼합되어 출력되는 것은 사용자에게 좋지 않으므로 동시에 모든 음악 앱이 재생되지 않도록 Android는 오디오 포커스라는 아이디어를 도입하여 한 번에 하나의 앱만 오디오 포커스를 유지할 수 있도록 하였습니다. 앱이 오디오를 출력해야 하는 경우 오디오 포커스를 요청해야 합니다. 포커스가 있는 앱은 사운드를 재생할 수 있습니다. 그러나 오디오 포커스를 획득한 ..
이번 글에서는 오디오 출력을 변경하는 방법에 대해 설명합니다. * 참고 사이트: https://developer.android.com/guide/topics/media-apps/volume-and-earphones 오디오 앱은 기본적으로 볼륨을 제어할 수 있어야 합니다. 표준 동작에는 볼륨 컨트롤(기기의 버튼이나 손잡이 또는 UI의 슬라이더)을 사용하는 기능 및 헤드폰 등 주변 기기의 연결을 하제할 때 갑자기 콘소리가 나지 않게 하는 기능이 있습니다. 볼륨 컨트롤 사용 오디오 사이에 플레이어가 일시 중지되거나 현재 게임 위치에 사용되는 음악이 없는 경우에도 사용자가 게임이나 음악 앱의 볼륨 키를 누르면 볼륨이 변경됩니다. Android는 음악, 경보, 알림, 수신 전화 벨소리 장치, 시스템 DTMF 소리..
이번 글에서는 미디어 버튼의 응답을 처리하는 방법에 대해 설명합니다. * 참고 사이트: https://developer.android.com/guide/topics/media-apps/mediabuttons Media Buttons은 블루투스 헤드셋의 일시중지/재생 버튼 등 Android 기기 및 기타 주변기기에서 볼 수 있는 하드웨어 버튼입니다. 사용자가 미디어 버튼을 누르면 Android는 KeyEvent를 생성하는데, 여기에는 버튼을 식별하는 키코드가 포함되어 있습니다. 미디어 버튼 KeyEvents의 키코드는 KEYCODE_MEDIA로 시작하는 상수입니다.(예: KEYCODE_MEDIA_PLAY) 앱은 아래와 같은 세가지 경우의 우선 순위에 따라 미디어 버튼 이벤트를 처리할 수 있어야 합니다. 앱..
이번 글에서는 동영상앱을 만드는데 꼭 필요한 구성요소인 MediaController와 MediaSession에 대해 설명합니다. * 참고 사이트: https://developer.android.com/guide/topics/media-apps/video-app/building-a-video-app 일반 동영상 플레이어는 실행되는 동안 항상 컨트롤과 동영상 콘텐츠를 표시해야 합니다. 백그라운드 or UI없이는 작동할 수 없습니다. 따라서 UI, Player, MediaSession, MediaController가 포함된 단일 활동으로 앱을 빌드하는 것이 좋습니다. 동영상 플레이어 Activity 빌드 MediaSession과 MediaController가 포함된 Activity를 빌드하는 방법에 대해 설명..
미디어 세션은 관리하는 플레이어와 함께 움직입니다. 미디어 세션 및 관련 플레이어를 소유한 활동 또는 서비스의 onCreate() 메서드에서 미디어 세션을 만들고 초기화해야 합니다. * 참고 미디어 앱을 개발하는 가장 좋은 방법은 media-compat 라이브러리를 사용하는 것 입니다. 이 글에서 언급되는 “미디어 세션”은 MediaSessionCompat의 인스턴스를 의미하고 “미디어 컨트롤러”는 MediaCOntrollerCompat의 인스턴스를 의미합니다. * 참고 사이트: https://developer.android.com/guide/topics/media-apps/working-with-a-media-session 미디어 세션 초기화 새로 만든 미디어 세션에는 기능이 없으므로 아래 단계에 따라..
이 글을 미디어 플레이어 앱을 미디어 컨트롤러와 미디어 세션으로 구분하는 방법을 설명합니다. 또한 미디어 앱 아키텍쳐에 적합한 클라이언트/서버 디자인 및 동영상 플레이어용 단일 활동 디자인에 관해 설명합니다. 미디어 앱이 하드웨어 컨트롤러에 응답하고 오디오 출력 스트림을 사용하는 다름 앱과 협업하는 방법도 보여줍니다. 참고 사이트: https://developer.android.com/guide/topics/media-apps/media-apps-overview Player & UI 일반적으로 오디오 또는 동영상을 재생하는 멀티미디어 어플리케이션은 아래와 같이 두 부분으로 구성됩니다. Player: 디지털 미디어를 가져와서 동영상 및 오디오로 렌더링하는 부분 UI: Player를 실행하고 선택적으로 Pl..
이전 글 als2019.tistory.com/35 참고 사이트: https://developer.android.com/kotlin/coroutines?hl=ko Android의 Kotlin 코루틴 | Android 개발자 | Android Developers 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다. 코루틴은 Kotlin 버전 1.3에 추가되었으며 다른 언어에서 확립된 개념을 기반으로 developer.android.com 작업 Timeout 처리하기 비동기 처리의 단점은 비동기 작업을 취소하는데 많은 리소스가 소모된다는데 있습니다. 코루틴에서는 작업 취소를 위해 Job의 cancel() 함수외에도 timeout()함수를 지원합니다..
코루틴은 비동기적으로 실행되는 코드를 간소화히기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴으로 Kotlin Ver 1.3에 추가 되었습니다. 코루틴은 Python, C#, Go, JavaScript 등 여러 언어에서 지원하고 있는 개념입니다. 이 글은 몇가지 예제로 코루틴 사용 방법에 대해 설명합니다. 참고 사이트: https://developer.android.com/kotlin/coroutines?hl=ko Thread and Coroutine 코루틴은 Android의 비동기 프로그래밍에 권장되는 솔루션으로 비동기 처리를 위해 이전에 사용하던 구린 AsyncTask를 대체할 효율적인 라이브러리 입니다. Android는 ANR을 방지하기 위해 앱이 Main Thread에서 Networ..