Hang

fő kép

Az alkalmazás fejlesztéséhez számos módon használhat hangokat. Hangjelzéssel kiegészítheti az egyéb felhasználói felületi elemeket, így a felhasználók hallhatóan felismerhetik az eseményeket. A hang hatékony felhasználói felületi elem lehet a látássérültek számára. A hang segítségével olyan légkört hozhat létre, amely elmerül a felhasználóban; Például játszhat egy szeszélyes hangsávot a puzzle játék hátterében, vagy használjon baljós hangeffektusokat egy horror/túlélési játékhoz.

Examples

Nyissa meg a WinUI 3 Katalógus alkalmazást, és tekintse meg a Hang működés közben című témakört

WinUI 3 Katalógus ikon A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI vezérlőire és funkcióira. Kérje le az alkalmazást a Microsoft Store vagy keresse meg a forráskódot GitHub.

Sound Global API

A WinUI egy könnyen elérhető hangrendszert biztosít, amely lehetővé teszi, hogy egyszerűen "átkapcsoljon," és az egész alkalmazásban magával ragadó hangélményt nyújtson.

A ElementSoundPlayer egy integrált hangrendszer az XAML-ben, és ha be van kapcsolva, az összes alapértelmezett vezérlő automatikusan lejátssza a hangokat.

ElementSoundPlayer.State = ElementSoundPlayerState.On;

A ElementSoundPlayer három különböző állapotot kínál: ki és Automatikus.

Ha be van állítva Kikapcsolva, függetlenül attól, hogy hol fut az alkalmazás, a hang soha nem fog megszólalni. állításakor a beállítás minden platformon le fogja játszani az alkalmazás hangjelzéseit.

Az ElementSoundPlayer engedélyezése automatikusan engedélyezi a térbeli hangot (3D hang) is. Az ElementSoundPlayer térbeli hangzásának kikapcsolásához (miközben a hang továbbra is aktív), tiltsa le a SpatialAudioMode:

ElementSoundPlayer.SpatialAudioMode = ElementSpatialAudioMode.Off

A SpatialAudioMode tulajdonság a következő értékeket veszi fel:

  • Automatikus: A térbeli hang bekapcsol, ha a hang be van kapcsolva.
  • Ki: A térbeli hang mindig kikapcsolva van, még akkor is, ha a hang be van kapcsolva.
  • : A térbeli hangzás mindig bekapcsolva lesz.

Ha többet szeretne megtudni a térbeli hangról és az XAML kezeléséről, tekintse meg AudioGraph – Térbeli hang.

Hangerő felülírása

Az alkalmazáson belüli összes hang elhalványulhat a Hangerő vezérlővel. Az alkalmazásban lévő hangok azonban nem lehetnek hangosabbak, mint a rendszer hangereje.

Az alkalmazás hangerőszintjének beállításához kövesse az alábbiakat:

ElementSoundPlayer.Volume = 0.5;

Ahol a maximális hangerő (a rendszerhangerőhöz viszonyítva) 1,0, a minimum pedig 0,0 (gyakorlatilag néma).

Vezérlési szint állapota

Ha egy vezérlő alapértelmezett hangjelzése nem kívánatos, letiltható. Ez a vezérlőben található ElementSoundMode révén történik.

Az ElementSoundMode három állapotból áll: Alapértelmezett, FocusOnly és Ki. Ha nincs beállítva, az alapértelmezett . Ha a FocusOnly értékre van állítva, csak a fókuszhangok hallhatók. Ha ki van kapcsolva, a vezérlőhöz nem szólnak hangok.

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

Ez a megfelelő hang?

Egyéni vezérlő létrehozásakor vagy meglévő vezérlő hangjának módosításakor fontos megérteni a rendszer által biztosított összes hang használatát.

Minden hang egy bizonyos alapvető felhasználói interakcióhoz kapcsolódik, és bár a hangok bármilyen interakcióhoz testre szabhatók, ez a szakasz azokat a forgatókönyveket szemlélteti, amelyekben hangokat kell használni az összes WinUI-alkalmazás konzisztens élményének fenntartásához.

Elem meghívása

A rendszerünkben ma a leggyakoribb vezérlő által aktivált hang a Indít hang. Ez a hang akkor hallható, amikor egy felhasználó egy koppintással/kattintással/enter/szóközzel vagy a játékpadon az "A" gomb lenyomásával hívja meg a vezérlőt.

Ezt a hangot általában csak akkor aktiválja a rendszer, ha egy felhasználó kifejezetten egy egyszerű vezérlőt vagy vezérlőrészletet céloz meg egy bemeneti eszközzel.

Ha bármilyen vezérlőeseményből szeretné lejátszani ezt a hangot, egyszerűen hívja meg a Play metódust ElementSoundPlayer, és adja meg ElementSound.Invoke:

ElementSoundPlayer.Play(ElementSoundKind.Invoke);

Tartalom megjelenítése és elrejtése

Az XAML-ben számos előugró ablak, párbeszédpanel és elutasítható felhasználói felület található, és minden olyan műveletnek, amely az átfedések egyikét aktiválja, megjelenítése vagy hang elrejtése parancsot kell meghívnia.

Átfedéses tartalomablak megtekintésekor a hangjelzést kell meghívni:

ElementSoundPlayer.Play(ElementSoundKind.Show);

Ezzel szemben ha egy átfedéses tartalomablak bezárul (vagy a fény el van vetve), a elrejtése hangot kell meghívni:

ElementSoundPlayer.Play(ElementSoundKind.Hide);

Amikor az alkalmazás oldalán lévő panelek vagy nézetek között navigál (lásd NavigationView), általában kétirányú mozgás történik. Ez azt jelenti, hogy az aktuális alkalmazásoldal elhagyása nélkül a következő nézetre/panelre vagy az előzőre léphet.

A navigációs koncepcióhoz kapcsolódó hangélményt a MovePrevious és a MoveNext hangok foglalják magukban.

Amikor olyan nézetre/panelre lép, amely a lista következő elemének számít, hívja meg a következőt:

ElementSoundPlayer.Play(ElementSoundKind.MoveNext);

Ha egy listában egy korábbi nézetre vagy panelre lép, amelyet az előző elem-nek tekintenek, hívja a következőt:

ElementSoundPlayer.Play(ElementSoundKind.MovePrevious);

Vissza navigáció

Amikor az aktuális lapról az előző oldalra navigál egy alkalmazásban, a GoBack hangot kell meghívni:

ElementSoundPlayer.Play(ElementSoundKind.GoBack);

Fókuszban egy elem

A Fókusz hang az egyetlen implicit hang a rendszerben. Ez azt jelenti, hogy a felhasználó nem kommunikál közvetlenül semmivel, de továbbra is hangot hall.

Az összpontosítás akkor történik, ha egy felhasználó egy alkalmazásban navigál, ez lehet a gamepad/billentyűzet/távoli vagy kinect. Általában a Fókusz hang nem játszódik le a PointerEntered vagy az egérre mutatás eseményeinél.

Ha úgy szeretne beállítani egy vezérlőt, hogy lejátssza a Fókusz hangot, amikor a vezérlő fókuszt kap, hívja fel a következőt:

ElementSoundPlayer.Play(ElementSoundKind.Focus);

Kerékpáros fókusz hangjai

A ElementSound.Focusmeghívásához hozzáadott funkcióként a hangrendszer alapértelmezés szerint 4 különböző hangon lépeget az egyes navigációs eseményindítókon. Ami azt jelenti, hogy nem követi egymást két teljesen azonos fókuszhang.

Ennek a kerékpározási funkciónak a célja, hogy a fókuszhangok ne legyenek monotonok, és hogy a felhasználó észrevehesse őket; a fókuszhangokat a leggyakrabban játsszák le, ezért a legfinomabbnak kell lenniük.