[HIG] User Interaction - Audio

LEEHAKJIN-VV·2022년 5월 22일
0

원본 문서:
Human Interface Guidelines User Interaction

NOTE
본 글은 Apple developer의 공식문서인 Human Interface Guidelines User Interaction 원본을 번역 및 개인적인 의견을 추가하여 정리한다.


Audio

아이폰과 아이패드는 유무선 스피커, 헤드폰을 이용하여 오디오를 재생할 수 있으며, 블루투스 또는 AirPlay 지원 장치를 통해 무선으로 오디오를 재생할 수 있다. 사용자는 볼륨 버튼, 벨소리/무음 스위치, 헤드폰 제어, 제어 센터 볼륨 슬라이더 및 타사 액세서리의 사운드 컨트롤을 포함하여 여러 유형의 컨트롤을 사용하여 디바이스의 사운드를 조절한다. 사운드가 앱의 중요한 부분이든 장식이든, 사용자가 원하는 데로 앱의 사운드를 조절해야 한다.

Silence

사용자는 원하지 않는 메시지나 벨소리에 방해받지 않기 위해 디바이스를 무음모드로 전환해야 한다. 이 시나리오 에서는 키보드 클릭, 사운드 효과, 사운드트랙 그리고 다른 불필요한 소리를 무음화 하기를 원한다. 디바이스가 무음 모드일 때, 미디어 재생, 알람, 오디오/비디오 메시지와 같이 사용자가 시작한 명시적인 작업일 때만 오디오를 재생해야 한다.

Volume

사람들은 볼륨 조절 방법에 상관없이 볼륨 설정이 시스템 전체의 모든 사운드(음악, 인앱 사운드 효과)에 영향을 주는 것을 원한다. 설정에서 별도로 조절할 수 있는 벨소리 볼륨은 예외다.

Headphones

사용자는 헤드폰을 사용하여 손을 사용하지 않고, 사용자가 듣는 사운드가 외부로 새지 않도록 한다. 헤드폰을 꽂을 때, 사용자는 중단 없이 디바이스에서 헤드폰으로 전환되기를 원하고 헤드폰의 플러그를 뽑을 때 오디오 재생이 즉시 멈추기를 원한다.

Designing a Great Audio Experience

Adjust levels automatically when necessary — don’t adjust the overall volume: 필요한 경우 볼륨 레벨을 자동으로 조절한다. 그러나 전체 볼륨은 조절하지 않는다. 앱은 상대적이고 독립적인 볼륨 수준을 제어할 수 있지만 최종 볼륨은 항상 시스템 볼륨이 조절하기 때문이다.

Permit rerouting of audio when possible: 가능한 경우에는 오디오 출력 경로를 재 설정한다. 사용자는 때때로 다른 오디오 기기에서의 출력을 원한다. 예를 들어 거실의 음향장치, 자동차 라디오, Apple TV를 통해 음악을 듣기를 원한다. 기능을 사용하지 않을 강력한 이유가 없는 한, 이 기능을 지원한다.

Use the system-provided volume view to let people make audio adjustments: 시스템에서 제공하는 볼륨 보기를 사용하여 사용자가 오디오를 조절할 수 있게 한다. 볼륨 보기에는 볼륨 레벨을 조절할 수 있는 슬라이더와 오디오 출력 경로를 지정하는 컨트롤이 포함되어 있다. 개발자는 이 슬라이더의 외형을 customize 할 수 있다. 다음 개발자 지침을 확인한다. MPVolumeView

Use the system's sound services to play short sounds and vibrations: 시스템의 사운드 서비스를 이용하여 짧은 소리와 진동을 표현한다.다음 개발자 지침을 확인한다. Audio Services

Choose an audio category that fits the way your app uses sound: 앱에서 사용하는 사운드 방식에 맞는 오디오 카테고리를 선택한다. 선택한 카테고리에 따라 앱의 사운드가 다른 오디오와 혼합되거나 백그라운드에 있는 동안 재생되거나, 벨소리/무음 스위치에서 무음으로 설정하면 중지될 수 있다. 가능한 한, 사용자의 기대를 충족시키는 카테고리를 선택한다. 예를 들어 필요한 경우가 아니라면, 다른 앱으로부터 재생되고 있는 음악 듣기를 멈추지 않는다. 자세한 사항은 다음 개발자 지침을 확인한다. AVAudioSession.Category.

아래에서는 5개의 오디오 카테고리를 소개한다.

  1. Solo ambient

    • Meaning: 소리가 필수는 아니지만, 다른 오디오를 무음으로 만든다. 예를 들어 사운드트랙이 있는 게임이 있다.

    • Behavior: 무음 스위치에 반응하며, 다른 소리와 같이 재생되지 않고, 백그라운드에서 재생되지 않는다.

  2. Ambient

    • Meaning: 소리가 필수는 아니지만, 다른 오디오를 무음으로 만들지 않는다. 예를 들어 게임 플레이 도중 게임의 사운드트랙 대신 다른 앱의 음악을 재생한다.

    • Behavior: 무음 스위치에 반응하며, 다른 소리와 같이 재생된다. 백그라운드에서 재생되지 않는다.

  3. Play back

    • Meaning: 소리가 필수로 재생되고, 다른 오디오와 같이 재생될 수 있다. 예를 들어 외국어를 가르치는 오디오북이나 교육용 앱은 앱이 종료된 뒤에도 재생될 수 있다.

    • Behavior: 무음 스위치에 반응하지 않으며, 다른 소리와 같이 재생될 수도 있고, 백그라운드에서 재생된다.

  4. Record

    • Meaning: 소리는 녹음된다. 예를 들어 오디오 녹음 모드를 제공하는 메모 앱이 있다. 이러한 유형의 앱은 사용자가 녹음된 메모를 재생할 경우 사운드 카테고리를 play back모드로 전환할 것이다.

    • Behavior: 무음 스위치에 반응하지 않으며, 다른 소리와 같이 재생되지 않고, 백그라운드에서 재생되지 녹음될 수 있다.

  5. Play and record

    • Meaning: 소리는 녹음 및 재생이 동시에 가능하다. 예를 들어 음성 메시지나 영상 통화 앱이 해당된다.

    • Behavior: 무음 스위치에 반응하지 않으며, 다른 소리와 같이 재생될 수도 있고, 백그라운드에서 재생되고 녹음될 수 있다.

When an interruption ends, determine whether to resume audio playback automatically: interruption이 끝나면 자동으로 오디오를 재생할지 여부를 결정한다. 때때로 다른 앱의 오디오가 현재 실행 중인 오디오를 interrupt(인터럽트) 할 수 있다. interruption가 수신 전화일 경우에는 재개할 수 있고, 사용자가 새로운 음악 목록을 재생하면 재개할 수 없다. interruption 타입과 앱 타입을 사용하여 자동으로 재생을 재개할지 여부를 결정해야 한다. 예를 들어 interruption이 발생했을 때 음악을 재생 중인 앱은 interruption이 끝났을 때 재생을 하기 전에 interruption의 타입이 resumable지 확인해야 한다. 반면에, 게임과 같은 앱은 자동으로 오디오를 재생하기 전에 interruption 타입을 확인할 필요가 없다. 게임은 사용자의 선택 없이 자동으로 오디오를 재생하기 때문이다. 개발자 지침은 다음을 확인한다. shouldResume

Ensure your VoIP app responds correctly to audio-session interruptions:
VoIP 앱이 오디오-연결 interruption에 정확하게 작동하는지 확인한다. 특히 사용자가 내장 마이크를 사용하는 동안 iPad의 스마트 폴리오를 닫으면 통화를 종료시키는 것은 중요하다. 스마트 폴리오를 닫으면 자동적으로 iPad의 마이크가 음소거 되고 기본적으로 디바이스와 연결된 오디오 연결을 interrupt 한다. 사용자가 스마트 폴리오를 다시 열어 오디오 연결이 재시작하면, 자신도 모르게 마이크가 활성화되어 사용자의 개인 정보를 침해할 위험이 있다. 오디오 연결의 interruption을 검사하여 올바른 응답 방법을 결정하기 위해 다음 지침을 확인한다. Responding to Audio Session Interruptions

Let other apps know when your app finishes playing temporary audio.: 앱에서 일시적인 오디오 재생을 끝내면 다른 앱에 알린다. 만약 앱이 다른 앱의 오디오를 일시적으로 interrupt 할 수 있으면, 다른 앱이 언제 시작할 수 있는지 알 수 있도록 오디오 연결에 flag를 지정해야 한다. 다음 개발자 지침을 확인한다. notifyOthersOnDeactivation

Respond to audio controls only when it makes sense: 타당한 경우에만 오디오 컨트롤에 응답한다. 사용자는 앱이 foreground에 있든, background에 있는지에 상관없이 헤드폰의 제어 또는 Control center(제어 센터)와 같이 앱 인터페이스 외부에서 오디오 재생을 제어할 수 있다. 앱이 확실한 오디오 관련 context(상황)에서 오디오를 재생하거나, 블루투스나 AirPlay 지원 디바이스에 연결된 경우에는 오디오 컨트롤에 반응하는 것이 바람직하다. 그렇지 않으면 사용자가 컨트롤을 활성화할 때 현재 재생 중인 다른 앱의 오디오가 중지되지 않아야 한다.

Don't repurpose audio controls: 오디오 컨트롤을 다른 용도로 사용하지 않는다. 사용자는 오디오 컨트롤이 모든 앱에서 일관되게 동작되기를 원한다. 그렇기 때문에 앱 내에서 오디오 컨트롤의 의미를 재정의 해서는 안된다. (오디오 컨트롤 기능을 다른 기능으로 사용x 예를 들어 클릭, 화면 닫기 등) 앱이 특정 컨트롤에 응답하지 않는 경우, 해당 컨트롤에 응답하지 않는다.

0개의 댓글