サウンドSound

ヒーロー イメージ

サウンドを使ってアプリを向上させるには、さまざまな方法があります。There are many ways to use sound to enhance your app. ユーザーがイベントを音声で認識できるように、サウンドを使って他の UI 要素を補完できます。You can use to sound to supplement other UI elements, enabling users to recognize events audibly. 視覚障碍のあるユーザーにとって、サウンドは効果的なユーザー インターフェイスの要素となる可能性があります。Sound can be an effective user interface element for people with visual disabilities. サウンドを使ってユーザーを釘づけにするような雰囲気を作ることができます。たとえば、パズル ゲームのバックグラウンドで風変わりなサウンドトラックを再生したり、ホラー ゲームやサバイバル ゲームで不気味なサウンド効果を使う可能性があります。You can use sound to create an atmosphere that immerses the user; for example, you might play a whimsical soundtrack in the background of puzzle game, or use ominous sound effects for a horror/survival game.

サウンドのグローバル APISound Global API

UWP には使いやすいサウンド システムが用意されていて、「スイッチを切り替える」だけで、アプリ全体にイマーシブなオーディオ エクスペリエンスを実装することができます。UWP provides an easily accessible sound system that allows you to simply "flip a switch" and get an immersive audio experience across your entire app.

ElementSoundPlayer は、XAML 内の統合的なサウンド システムで、オンにすると、すべての既定のコントロールで自動的にサウンドが再生されます。The ElementSoundPlayer is an integrated sound system within XAML, and when turned on all default controls will play sounds automatically.

ElementSoundPlayer.State = ElementSoundPlayerState.On;

ElementSoundPlayer には、次の 3 つの異なる状態があります: OnOffAutoThe ElementSoundPlayer has three different states: On Off and Auto.

Off に設定すると、アプリの実行環境に関わらず、サウンドが再生されることはありません。If set to Off, no matter where your app is run, sound will never play. On に設定すると、すべてのプラットフォームで、アプリのサウンドが再生されます。If set to On sounds for your app will play on every platform.

ElementSoundPlayer を有効にすると、空間オーディオ (3D サウンド) も自動的に有効になります。Enabling ElementSoundPlayer will automatically enable spatial audio (3D sound) as well. サウンドをオンにしたまま 3D サウンドを無効にするには、ElementSoundPlayer の SpatialAudioMode を無効にします。To disable 3D sound (while still keeping the sound on), disable the SpatialAudioMode of the ElementSoundPlayer:

ElementSoundPlayer.SpatialAudioMode = ElementSpatialAudioMode.Off

SpatialAudioMode プロパティの有効な値は以下のとおりです。The SpatialAudioMode property can takes these values:

  • 自動:サウンドがオンのときに、空間オーディオがオンになります。Auto: Spatial audio will turn on when sound is on.
  • Off: サウンドがオンでも、空間オーディオは常にオフです。Off: Spatial audio is always off, even if sound is on.
  • [オン] :空間オーディオが常に再生されます。On: Spatial audio will always play.

空間オーディオと XAML による空間オーディオの処理方法について詳しくは、「オーディオ グラフ」の「空間オーディオ」をご覧ください。To learn more about spatial audio and how XAML handles it see AudioGraph - Spatial Audio.

テレビや Xbox のサウンドSound for TV and Xbox

サウンドは 10 フィート エクスペリエンスの重要なパーツであるため、既定では、ElementSoundPlayer の状態は Auto、つまり、アプリが Xbox で実行されているときにのみサウンドが再生されます。Sound is a key part of the 10-foot experience, and by default, the ElementSoundPlayer's state is Auto, meaning that you will only get sound when your app is running on Xbox. Xbox やテレビ向けの設計について詳しくは、「Xbox およびテレビ向け設計」の記事をご覧ください。To understand more about designing for Xbox and TV, please see Designing for Xbox and TV.

音量設定のオーバーライドSound Volume Override

アプリ内のすべてのサウンドは、Volume コントロールで小さくすることができます。All sounds within the app can be dimmed with the Volume control. しかし、アプリ内のサウンドをシステムの音量より大きくすることができません。However, sounds within the app cannot get louder than the system volume.

アプリの音量レベルを設定するには、次のように呼び出します。To set the app volume level, call:

ElementSoundPlayer.Volume = 0.5;

ここで、最大の音量はシステムの音量に相対的に1.0、最小は 0.0 (本質的にサイレント)です。Where maximum volume (relative to system volume) is 1.0, and minimum is 0.0 (essentially silent).

コントロール レベルの状態Control Level State

コントロールの既定のサウンドが望ましくない場合は、これを無効にできます。If a control's default sound is not desired, it can be disabled. サウンドを無効にするには、コントロールで ElementSoundMode を使います。This is done through the ElementSoundMode on the control.

ElementSoundMode には、次の 2 つの状態があります: OffDefaultThe ElementSoundMode has two states: Off and Default. 設定しないと、Default になります。When not set, it is Default. Off に設定すると、コントロールが再生するすべてのサウンドはミュートされます (フォーカスを除く)。If set to Off, every sound that control plays will be muted except for focus.

<Button Name="ButtonName" Content="More Info" ElementSoundMode="Off"/>
ButtonName.ElementSoundState = ElementSoundMode.Off;

適切なサウンドの選択Is This The Right Sound?

カスタム コントロールを作成したり、既にあるコントロールのサウンドを変更したりするときには、システムが提供するすべてのサウンドの使用法を理解することが重要です。When creating a custom control, or changing an existing control's sound, it is important to understand the usages of all the sounds the system provides.

各サウンドは特定の基本的なユーザー操作に関連付けられています。すべての対話式操作で再生するサウンドをカスタマイズできますが、このセクションでは、すべての UWP アプリで一貫したエクスペリエンスを維持するためにサウンドを使う必要がある、というシナリオを説明します。Each sound relates to a certain basic user interaction, and although sounds can be customized to play on any interaction, this section serves to illustrate the scenarios where sounds should be used to maintain a consistent experience across all UWP apps.

要素の呼び出しInvoking an Element

現在のシステムで最も一般的な、コントロールにトリガーされるサウンドは、Invoke サウンドです。The most common control-triggered sound in our system today is the Invoke sound. このサウンドは、ユーザーがタップ、クリック、入力、スペース、または、ゲームパッドの [A] ボタンを押すことでコントロールを呼び出したときに、再生されます。This sound plays when a user invokes a control through a tap/click/enter/space or press of the 'A' button on a gamepad.

通常このサウンドは、ユーザーが入力デバイスを介して明示的に単純なコントロールまたはコントロールの一部を対象としたときにのみ再生されます。Typically, this sound is only played when a user explicitly targets a simple control or control part through an input device.

<SelectButtonClick.mp3 サウンド クリップ><SelectButtonClick.mp3 sound clip here>

任意のコントロール イベントからこのサウンドを再生するには、シンプルに ElementSoundPlayer から Play メソッドを呼び出し、ElementSound.Invoke に渡します。To play this sound from any control event, simply call the Play method from ElementSoundPlayer and pass in ElementSound.Invoke:

ElementSoundPlayer.Play(ElementSoundKind.Invoke);

コンテンツの表示と非表示Showing & Hiding Content

XAML には多くのポップアップやダイアログ、閉じることができる UI があり、これらのオーバーレイのいずれかをトリガーするすべての操作で Show または Hide サウンドを呼び出す必要があります、There are many flyouts, dialogs and dismissible UIs in XAML, and any action that triggers one of these overlays should call a Show or Hide sound.

オーバーレイのコンテンツ ウィンドウをビューに読み込むときに、Show サウンドを呼び出す必要があります。When an overlay content window is brought into view, the Show sound should be called:

<OverlayIn.mp3 サウンド クリップ><OverlayIn.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.Show);

逆に、オーバーレイのコンテンツ ウィンドウを閉じる (または簡易非表示にする) ときに、Hide サウンドを呼び出す必要があります。Conversely when an overlay content window is closed (or is light dismissed), the Hide sound should be called:

<OverlayOut.mp3 サウンド クリップ><OverlayOut.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.Hide);

アプリのページ内でパネルまたはビューの間を移動する場合 (タブとピボットに関するページを参照してください)、通常は双方向の移動になります。When navigating between panels or views within an app's page (see Tabs and Pivots), there is typically bidirectional movement. つまり、現在表示しているアプリのページを離れずに、次のビュー/パネルまたは前のビュー/パネルに移動できます。Meaning you can move to the next view/panel or the previous one, without leaving the current app page you're on.

このナビゲーションの概念に関するオーディオ エクスペリエンスは、MovePrevious サウンドと MoveNext サウンドに包含されています。The audio experience around this navigation concept is encompassed by the MovePrevious and MoveNext sounds.

リストの次の項目と考えられるビュー/パネルに移動するときは、次のように呼び出します。When moving to a view/panel that is considered the next item in a list, call:

<PageTransitionRight.mp3 サウンド クリップ><PageTransitionRight.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.MoveNext);

リストの前の項目と考えられるビュー/パネルに移動するときは、次のように呼び出します。And when moving to a previous view/panel in a list considered the previous item, call:

<PageTransitionLeft.mp3 サウンド クリップ><PageTransitionLeft.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.MovePrevious);

戻るナビゲーションBack Navigation

アプリ内で現在のページから前のページにナビゲーションするときは、GoBack サウンドを呼び出す必要があります。When navigating from the current page to the previous page within an app the GoBack sound should be called:

<BackButtonClick.mp3 サウンド クリップ><BackButtonClick.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.GoBack);

要素へのフォーカスFocusing on an Element

マイクロソフトのシステムの Focus サウンドは、唯一の暗黙的なサウンドです。The Focus sound is the only implicit sound in our system. つまり、ユーザーは、何かを直接操作していなくてもサウンドが聞こえます。Meaning a user isn't directly interacting with anything, but is still hearing a sound.

フォーカスは、ユーザーがアプリをナビゲーションしたときに、ゲームパッド、キーボード、リモート、キネクトのいずれかで起こります。Focusing happens when a user navigates through an app, this can be with the gamepad/keyboard/remote or kinect. 通常、Focus サウンドは、PointerEntered またはマウス ホバー イベント時には再生されませんTypically the Focus sound does not play on PointerEntered or mouse hover events.

コントロールがフォーカスされたときに Focus サウンドを再生するように設定するには、次のように呼び出します。To set up a control to play the Focus sound when your control receives focus, call:

<ElementFocus1.mp3 サウンド クリップ><ElementFocus1.mp3 sound clip here>

ElementSoundPlayer.Play(ElementSoundKind.Focus);

フォーカス サウンドの循環Cycling Focus Sounds

ElementSound.Focus 呼び出しの追加機能として、サウンド システムは、既定で、ナビゲーション トリガーごとに 4 つの異なるサウンドを循環させます。As an added feature to calling ElementSound.Focus, the sound system will, by default, cycle through 4 different sounds on each navigation trigger. つまり、2 つの同じフォーカス サウンドが前後して再生されることはありません。Meaning that no two exact focus sounds will play right after the other.

この循環機能の目的は、フォーカス サウンドが単調になることを防ぎ、ユーザーの注意をひかない状態を保つことです。フォーカス サウンドは、最もよく再生されるため、最も繊細なサウンドにする必要があります。The purpose behind this cycling feature is to keep the focus sounds from becoming monotonous and from being noticeable by the user; focus sounds will be played most often and therefore should be the most subtle.