brunch

You can make anything
by writing

C.S.Lewis

by Lawn Feb 02. 2023

[HIG] Playing audio

기기에 따라 자동으로 조정되는 오디오

본 문서는 Apple의 Human Interface Guideline(이하 HIG) 문서를 한글로 번역한 것입니다. iOS 생태계 내에서 HIG를 읽으시는 분들이 번역본이 없어 불편함을 겪는 것을 알게 되었고, 이에 한글로 번역을 하게 되었습니다. iOS 커뮤니티 Async Swift에서 자율적으로 모인 9명이 함께 번역했으며, 일체의 상업적인 목적을 띄지 않습니다. 이 문서를 학습에 적극적으로 이용해 주시돼, 상업적인 용도로 이용하시는 것은 지양해 주시기 바랍니다. 감사합니다.


Introduction


사람들은 기기에서 사용 맥락이 변경될 때 자동으로 조정되는 풍부한 오디오 경험을 원합니다.


기기는 내부 또는 외부 스피커, 헤드폰, Bluetooth 또는 AirPlay 지원 장치를 통한 무선과 같은 다양한 방법으로 오디오를 재생할 수 있습니다. 기기의 사운드를 조작하기 위해 사람들은 볼륨 버튼, iPhone의 벨소리/무음 스위치, 헤드폰 컨트롤, 제어 센터 볼륨 슬라이더 및 타사의 사운드 컨트롤을 비롯한 여러 유형의 컨트롤을 사용합니다. 사운드가 경험의 주요하거나 부수적이든, 볼륨과 출력을 변경할 때 사람들이 원하는 대로 적용이 되는지 확인해야 합니다.


고요(Silence) 사용자들은 벨소리 및 수신 메시지와 같은 소리에 방해받지 않으려면 기기를 무음으로 전환합니다. 이 상황에서 그들은 키보드 클릭, 음향 효과, 게임 사운드 트랙 및 기타 피드백(소리)과 같은 불필요한 소리를 무음 바꾸기를 원합니다. 기기가 무음 모드일 때 미디어 재생, 알람, 오디오/비디오 메시징과 같이 사용자들이 의도적으로 사용한 오디오만 재생해야 합니다.


용량(Volume) 사용자들은 볼륨 설정을 통해 음악 및 인앱 사운드 효과를 포함한 시스템의 모든 사운드를 조절하기를 원합니다. 예외로 iPhone의 벨소리 볼륨은 설정에서 별도로 조정할 수 있습니다.


헤드폰(Headphones) 사용자들은 헤드폰을 사용하여 두 손을 자유롭게 사용할 수 있습니다. 사용자는 헤드폰을 기기에 연결했을 때 사운드 중단 없이 자동으로 재생되기를 원합니다. 또한 헤드폰을 뽑을 때 재생이 일시 중지되기를 원합니다.


Best practices


필요한 경우 사운드 레벨을 자동으로 조절하고 전체 볼륨을 조절하지 마세요. 앱은 사용되는 오디오의 사용자 경험을 위해 상대적이고 독립적으로 사운드 레벨을 조절할 수 있지만 시스템 볼륨은 항상 최종 사운드 레벨을 제어할 수 있어야 합니다.


다른 출력장치에 연결이 가능한 경우 사용자가 원하는 곳에 연결할 수 있게 하세요. 사람들은 다른 오디오 출력 장치를 사용하고 싶을 수 있습니다. 예를 들어, 거실 스테레오, 자동차 라디오 또는 Apple TV를 통해 음악을 듣고 싶을 수 있습니다. 중요한 문제가 없는 한 이 기능을 지원하는 것이 좋습니다.


시스템에서 제공하는 볼륨 보기를 사용하여 사용자들이 오디오를 조정할 수 있도록 합니다. 볼륨 보기에는 사운드 레벨 슬라이더와 오디오 출력 경로를 변경하기 위한 컨트롤이 포함되어 있습니다. 슬라이더의 모양을 사용자 정의할 수 있습니다. 개발자 가이드라인은 MPVolumeView를 참고하세요.


앱이나 게임에서 사운드를 사용하는 방식에 맞는 오디오 카테고리를 선택하세요. 선택한 오디오의 카테고리에 따라 앱의 사운드가 다른 오디오와 혼합되거나 앱이 백그라운드에 있는 동안 재생되거나 사용자들이 벨소리/무음 스위치를 무음으로 설정하면 중지될 수 있습니다. 가능한 한 앱이 사용자들의 사용자 경험을 향상하는 데 도움이 되는 카테고리를 선택하세요. 예를 들어 필요하지 않은 경우 사용자들이 다른 앱의 음악 듣기를 중단하도록 하지 않도록 하는 것이 좋습니다. 개발자 가이드라인은 AVAudioSession.Category를 참고하세요.

타당한 경우에만 오디오 컨트롤에 응답하세요. 사람들은 앱 사용 여부 또는 앱이 백그라운드에서 동작하는지에 관계없이 제어 센터 또는 헤드폰의 컨트롤과 같은 앱 인터페이스 외부에서 오디오 재생을 제어할 수 있습니다. 앱이 오디오 관련 콘텍스트에서 오디오를 적절히 재생하거나 Bluetooth 또는 AirPlay 지원 장치에 연결된 경우 오디오 컨트롤에 따라 조정되는 것이 좋습니다. 그렇지 않으면 사람들이 컨트롤을 사용할 때 다른 앱에서 현재 재생 중인 것을 중단하지 않는 것이 좋습니다.


오디오 컨트롤의 용도를 변경하지 마세요. 사용자들은 오디오 컨트롤이 모든 앱에서 일관되게 작동하기를 원하므로 앱에서 오디오 컨트롤의 의미를 재정의하지 않는 것이 중요합니다. 앱이 특정 컨트롤을 지원하지 않는 경우 해당 컨트롤에 응답하지 않는 것이 좋습니다.


시스템에서 지원하지 않는 명령을 사용해야 하는 경우에만 사용자 지정 오디오 플레이어 컨트롤을 만드는 것이 좋습니다. 예를 들어 앞으로 또는 뒤로 건너뛰기 위한 사용자 지정 컨트롤을 정의하거나 스포츠 점수와 같은 재생 오디오와 관련된 콘텐츠를 표시할 수 있습니다.


앱에서 임시 오디오 재생을 마치면 다른 앱에 알립니다. 앱이 다른 앱의 오디오를 일시적으로 중단할 수 있는 경우 다른 앱이 언제 다시 시작할 수 있는지 알 수 있도록 오디오 세션에 플래그를 지정해야 합니다. 개발자 가이드라인은 notifyOthersOnDeactivation를 참고하세요.


Handling interruptions


대부분의 앱과 게임은 시스템의 컨트롤을 따르지만 사용자들의 요구 사항을 더 잘 수용하도록 이 컨트롤을 사용자 지정할 수 있습니다.


오디오 세션 중단에 대응하는 방법을 설정합니다. 예를 들어 앱에서 사용자들이 녹음이나 기타 오디오 관련 작업을 사용하는 경우 수신전화에 대해 현재 재생 중인 작업을 중단시키지 않도록 시스템에 설정할 수 있습니다. 또 다른 예로 VoIP 앱에서 내장 마이크를 사용하는 동안 iPad의 아이패드 덮개(Smart Folio)를 닫으면 통화가 종료됩니다.  아이패드 덮개(Smart Folio)를 닫으면 iPad 마이크가 자동으로 음소거되고 기본적으로 연결된 오디오 세션이 중단됩니다. 사용자들이 아이패드 덮개(Smart Folio)를 다시 열 때 VoIP 앱이 오디오 세션을 다시 시작하게 하면 사용자들의 개인 정보를 침해할 위험이 있습니다. 오디오 세션 중단을 검사하여 올바른 응답 방법을 결정할 수 있습니다. 개발자 가이드라인은 Responding to audio session interruptions를 참고하세요.


오디오 중단이 끝나면 오디오 재생을 자동으로 재개할지 여부를 결정합니다. 경우에 따라 다른 앱의 오디오가 앱에서 재생 중인 오디오를 중단할 수 있습니다. 이렇게 중단된 오디오는 다시 재생할 수 없습니다. 오디오 중단 유형과 앱 유형을 통해 자동으로 재생할지 여부를 결정합니다. 예를 들어 오디오 중단이 발생했을 때 적극적으로 오디오를 재생하는 미디어 재생 앱은 오디오 중단이 끝날 때 재생을 계속하기 전에 재생 가능한지 확인할 수 있습니다. 반면에 게임은 사용자의 의도적인 선택 없이 오디오를 재생하기 때문에 자동으로 재생하기 전에 오디오가 중단되는 유형을 확인할 필요가 없습니다. 개발자 가이드라인은 shouldResume를 참고하세요.


Platform considerations


iOS, iPadOS

시스템의 사운드 서비스를 사용하여 소리와 진동을 재생합니다. 개발자 가이드라인은 Audio Services를 참고하세요.


Mac OS

macOS에서 알림 소리는 기본적으로 다른 오디오와 혼합됩니다.


tvOS

tvOS에서 오디오 재생은 사용자들이 기기와 상호작용을 통해 작업을 시작할 때만 재생됩니다. 예를 들어, tvOS는 경고나 알림과 같은 소리를 재생하지 않습니다.


watchOS

watchOS에서 시스템은 오디오 재생을 관리합니다. 앱은 활성화되어 실행되는 동안 짧은 오디오 클립을 재생하거나 사용자들이 손을 내리거나 다른 앱으로 전환하는 경우에도 지속되는 긴 오디오를 재생할 수 있습니다.


미디어 자산(media assets)에 권장되는 인코딩 값을 사용하는 것이 좋습니다. 특히 고효율 고급 오디오 코딩(64 kbps HE-AAC) 형식을 사용하여 데이터 요구 사항이 낮은 고품질 오디오를 생성합니다.


사용자들이 앱을 떠나지 않고도 현재 또는 최근에 재생한 오디오를 제어할 수 있도록 현재 재생(Now Playing) 보기를 제공하는 것을 고려해 보세요. 시스템에서 제공하는 현재 재생(Now Playing) 보기는 현재 오디오 소스에 대한 정보도 표시하고 현재 또는 가장 최근에 사용한 소스를 자동으로 선택합니다. 개발자 가이드라인은 Adding a Now Playing view를 참고하세요.


Resources


Related   

Playing video

Feedback


Developer documentation   

AVAudioSession


Videos

Immerse your app in spatial audio WWDC21


작가의 이전글 [HIG] Onboarding
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari