현재 프로젝트에는 사운드를 다뤄야 할 일이 굉장히 많다. 그래서 이 AudioAttribute와 접할 일이 많다. 

 

먼저 공식 문서의 정의를 봐보자 (https://source.android.com/docs/core/audio/attributes)

 

Audio players support attributes that define how the audio system handles routing, volume, and focus decisions for the specified source. 

 

대충 해석을 해보면 AudioAttribute는 볼륨, 포커스 결정, 라우팅 (아마 출력 경로를 의미하는게 아닌가 싶다. 이어폰, 스피커 등등 .. ) 등을 지정하는데 쓰이는 속성 값이라고 보면 될 듯 하다. 

 

 

 

AudioAttribute가 어떤 값들을 가지고 있는지 자세히 알아보자. 공식문서에서 관련된 것들을 가져왔다. 

안드로이드는 개발자가 설정한 이러한 값들을 기반으로 어떤 식으로 사운드 처리를 해야하는지 판단하는 듯 하다. 

 

다음은 Usage에 관련한 프로퍼티다 

 

  • USAGE_UNKNOWN 
  • USAGE_MEDIA 
  • USAGE_VOICE_COMMUNICATION 
  • USAGE_VOICE_COMMUNICATION_SIGNALLING 
  • USAGE_ALARM
  • USAGE_NOTIFICATION 
  • USAGE_NOTIFICATION_TELEPHONY_RINGTONE --> 
  • USAGE_NOTIFICATION_COMMUNICATION_REQUEST
  • USAGE_NOTIFICATION_COMMUNICATION_INSTANT
  • USAGE_NOTIFICATION_COMMUNICATION_DELAYED
  • USAGE_NOTIFICATION_EVENT
  • USAGE_ASSISTANCE_ACCESSIBILITY
  • USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
  • USAGE_ASSISTANCE_SONIFICATION
  • USAGE_GAME
  • USAGE_VIRTUAL_SOURCE
  • USAGE_ASSISTANT

 

그리고 다음은 Content Type에 관련한 것들이다. 

 

  • CONTENT_TYPE_UNKNOWN(기본)
  • CONTENT_TYPE_MOVIE
  • CONTENT_TYPE_MUSIC
  • CONTENT_TYPE_SONIFICATION
  • CONTENT_TYPE_SPEECH

 

실제 Attribute는 다음과 같이 만들어서 쓰면 된다. 음악을 재생하는 경우를 코드로 짜 보았다. 

 

usage = AudioAttributes.USAGE_MEDIA;
cType = AudioAttributes.CONTENT_TYPE_MUSIC;

AudioAttributes attr = new AudioAttributes.Builder()
    .setUsage(usage)
    .setContentType(cType)
    .build();

'Android' 카테고리의 다른 글

Android 퍼미션 CHANGE_CONFIGURATION  (0) 2023.10.11

+ Recent posts