본문 바로가기

Android/오디오 및 비디오7

Jetpack Media3 나오게 된 배경 Media3는 기존에 존재하던 라이브러리(ex. Jetpack Media, Media2,Exoplayer 등등)에서 UI 재생, 그리고 Media Session 과 같은 공통 기능을 정의했으며 파편화 되었던 각 라이브러리들간의 복잡성을 추상화 하였다. 또한 공통으로 사용할 수 있는 Player인터페이스를 정의하여 편의성을 증대 시켰다. 이번 글은 Media3에 대해 알아보도록 하자. ☆중요 Media3이 이전 미디어 API와 구별되는 주요 특징 중 하나는 더 이상 구성요소 간 커넥터가 필요하지 않다는 것이다. 새로운 MediaSession클래스는 UI와 마찬가지로 Player 인터페이스를 구현하는 모든 클래스를 사용한다. ExoPlayer와 MediaController는 모두 이 인터페이.. 2023. 11. 15.
미디어 용어 사전2 - Android AudioTrack AudioTrack은 안드로이드에서 제공하는 API로, 간단하게 말해 안드로이드 앱에서 소리를 재생하는 데 사용되는 도구이다. 이 API를 통해 음악, 효과음, 또는 다양한 오디오 소스를 앱에서 제어하고 재생할 수 있다. 예를 들어, 게임 앱에서 특정 상황에 맞는 효과음을 재생하거나 음악 앱에서 노래를 재생하는 데에 사용될 수 있다. AudioTrack은 오디오 데이터를 다루고 재생하는 데 도움이 되며, 앱 개발자들은 이를 활용하여 사용자에게 더 풍부하고 흥미로운 오디오 경험을 제공할 수 있다. AudioTrack 클래스는 Java 어플리케이션에서 하나의 오디오 자원을 관리하고 재생하는 역할을 한다. 이 클래스는 PCM(펄스 코드 변조) 오디오 버퍼를 오디오 장치로 전송하여 재생하는 .. 2023. 11. 14.
미디어 용어 사전1 - Basic 인코딩(코딩) / 디코딩 인코딩은 정보를 특정 형식으로 변환하는 과정을 의미한다. 이는 데이터를 효율적으로 저장하거나 전송하기 위해 주로 사용된다. 예를 들어, 비디오 인코딩은 큰 용량의 원본 비디오 데이터를 작은 크기로 압축하는 과정을 말한다. 반면, 디코딩은 인코딩된 데이터를 원래의 형태로 복구하는 과정이다. 디코딩을 통해 우리는 인코딩된 비디오 파일을 원래의 화질로 볼 수 있게 된다. 간단히 말해, 인코딩은 정보를 효율적으로 다루기 위해 변환하는 과정이고, 디코딩은 변환된 정보를 원래대로 복구하는 과정입니다. 코덱 '코덱'은 '코더'와 '디코더'의 합성어로, 미디어 파일을 압축(인코딩)하거나 압축을 풀어 원래의 상태로 되돌리는(디코딩) 기술을 의미한다. 코덱은 미디어 데이터를 효율적으로 다루기 위한.. 2023. 11. 12.
ExoPlayer / Player Player란? 'Player' 클래스는 미디어 재생을 관리하고 제어하는 ​​데 핵심적인 역할을 한다. 핵심적인 역할은 다음과 같다. 미디어 제어 : Player는 미디어 재생을 위한 리모컨과 같다. 이를 사용하여 오디오 또는 비디오 콘텐츠의 재생을 시작, 일시 중지, 재개 및 중지한다. Track 관리 : 오디오, 비디오, 텍스트(자막) 등 다양한 트랙을 관리한다. 'Player'를 사용하면 활성화된 트랙을 제어하고 해당 설정을 조정할 수 있다. 미디어 세션 통합 : Jetpack Media3의 Player는 Android 미디어 세션 API와 통합된다. 이는 시스템 미디어 컨트롤과 원활하게 작동하여 사용자가 알림 컨트롤, 잠금 화면 및 기타 외부 인터페이스에서 재생을 제어할 수 있음을 의미한다. 이벤.. 2023. 11. 6.
MPEG-DASH 란 들어가기 전 Adaptive Streaming 은 적응형 스트리밍으로 사용자의 네트워크 상태에 적응해서 스트리밍을 해주는 기술이다. 동영상 콘텐츠를 다양한 해상도로 인코딩해서 저장하고 이를 잘게 잘게쪼개어 저장을 해놨다가 사용자의 네트워크 상황에 따라서 최적의 동영상 콘텐츠 조각을 가져와 스트리밍 해주는 방식입니다. 대표적으로 Youtube가 이러한 방식이다. 통신 상황에 따라서 자동으로 해상도가 좋아졌다 나빠졌다하는걸경험해보셨을 것이다. 이를 이용하면 서비스를 제공하는 서버의 트래픽을 관리할 수 있을 뿐 아니라 사용자는 끊기지 않고 동영상 시청이 가능하게 된다. MPEG-DASH 란 MPEG-DASH는 국제 표준화된 최초의 적응 비트레이트 HTTP 기반 스트리밍 솔루션이다. 이전에는 동영상을 통째로 받.. 2023. 11. 3.
DroidKnights - Jetpack Media3로 좋은 콘텐츠 소비 경험 구현하기 이번 글은 DroidKnights에서 발표한 류기민님의 Jetpack Media3로 좋은 콘텐츠 소비 경험 구현하기를 정리한 글입니다. 이전에는.... 2000년 중 후반쯤, 우리가 동영상을 볼 때 위와 같은 버퍼링표시를 보곤 했었다. 이때는 스트리밍이 고려되지 않은 상태여서 파일을 통째로 전달받아 재생하는 형태였다. 이때는 1%도 되지 않으면 재생이 되지 않았었다... 그랬던 시절을 지나... 2010년에 들어서 모다일 시장이 열려 스트리밍 시장이 확대되었다. 그래서 스트리밍을 위한 국제 표준 기술이 등장하게되는데...!! DASH Dynamic Adaptive Streaming over HTTP ISO 표준으로 개발된 HTTP Adaptive Streaming 의 한종류이다. Adaptive에서 알 .. 2023. 11. 2.
MedioPlayer에서 ExoPlayer로 전환하는 이유(1) 나는 오늘 한통의 CS를 받았다. 우리가 제공하는 서비스 중 문장을 따라 말하고 녹음하여 분석하고 자신이 녹음한 내용을 들려주는 기능이 존재한다. 그런데 그간 녹음 했던 파일들이 들리지 않는다는 것 이였다. 나는 당연히 고객이 실수 했거나 기기의 문제일 것이라고 생각했지만 고객은 자신의 기기는 이상이 없으니 알아서 고치라고 으름장을 놓았다. 나는 급하게 서버측에 저장된 녹음파일을 확인했더니 왠걸 잘 저장되었고 해당파일은 IOS나 웹에서는 잘 들이는 것이였다......! 나는 모든 케이스의 시도를 해보았고 다른 기기에서 녹음했을때는 이상없이 잘 작동하기에 기기의 문제가 확실한데 IOS와 웹은 해당 파일의 녹음본이 잘 들린다하니.....진짜......... 고객의 불타는 요구에 겨우 겨우 CX팀에게 부탁하여.. 2023. 8. 11.