Delen via


Geluid

hoofdafbeelding

Er zijn veel manieren om geluid te gebruiken om uw app te verbeteren. U kunt geluid gebruiken om andere UI-elementen aan te vullen, zodat gebruikers gebeurtenissen hoorbaar kunnen herkennen. Geluid kan een effectief element van de gebruikersinterface zijn voor mensen met een visuele handicap. U kunt geluid gebruiken om een sfeer te creëren die de gebruiker onderdompelt; U kunt bijvoorbeeld een whimsische soundtrack spelen op de achtergrond van puzzelspel of omineuze geluidseffecten gebruiken voor een horror-/survivalspel.

Voorbeelden

WinUI 2 Gallery
WinUI Gallery

Als u de WinUI 2 Gallery-app hebt geïnstalleerd, klikt u hier om de app te openen en geluid in actie te zien.

Sound Global API

UWP biedt een eenvoudig toegankelijk geluidssysteem waarmee u eenvoudig een schakelaar kunt omzetten en een meeslepende audio-ervaring kunt beleven in uw hele app.

Het ElementSoundPlayer is een geïntegreerd geluidssysteem binnen XAML en wanneer alle standaardbesturingselementen zijn ingeschakeld, worden geluiden automatisch afgespeeld.

ElementSoundPlayer.State = ElementSoundPlayerState.On;

De ElementSoundPlayer heeft drie verschillende status: AanUit en Auto.

Als dit is ingesteld op Uit, zal geluid nooit worden afgespeeld, ongeacht waar uw app wordt uitgevoerd. Als de optie is ingesteld op , zullen-geluiden voor uw app op elk platform worden afgespeeld.

Als u ElementSoundPlayer inschakelt, wordt ook automatisch ruimtelijk geluid (3D-geluid) ingeschakeld. Als u 3D-geluid wilt uitschakelen (terwijl u het geluid nog steeds ingeschakeld houdt), schakelt u de SpatialAudioMode van het ElementSoundPlayer uit:

ElementSoundPlayer.SpatialAudioMode = ElementSpatialAudioMode.Off

De eigenschap SpatialAudioMode kan deze waarden gebruiken:

  • Auto: Ruimtelijke audio wordt ingeschakeld wanneer het geluid aanstaat.
  • Uit: Ruimtelijke audio is altijd uitgeschakeld, zelfs wanneer het geluid aan staat.
  • Op: Ruimtelijke audio wordt altijd afgespeeld.

Zie AudioGraph - Spatial Audio voor meer informatie over ruimtelijke audio en hoe XAML het verwerkt.

Geluid voor tv en Xbox

Geluid is een belangrijk onderdeel van de 10-voet gebruikservaring en is standaard zo ingesteld dat de status van de ElementSoundPlayerAutois, wat betekent dat u alleen geluid krijgt wanneer uw app op Xbox draait. Zie Ontwerpen voor Xbox en TV voor meer informatie.

Geluidsvolume overschrijven

Alle geluiden in de app kunnen gedempt worden met de Volume regelaar. Geluiden in de app kunnen echter niet luider worden dan het systeemvolume.

Als u het volumeniveau van de app wilt instellen, roept u het volgende aan:

ElementSoundPlayer.Volume = 0.5;

Waarbij het maximumvolume (ten opzichte van systeemvolume) 1,0 is en minimaal 0,0 (in wezen stil).

Status van besturingsniveau

Als het standaardgeluid van een besturingselement niet gewenst is, kan het worden uitgeschakeld. Dit wordt gedaan via de ElementSoundMode op het bedieningselement.

De ElementSoundMode heeft twee toestanden: Uit en Standaard. Als deze niet is ingesteld, is het Standaard. Als dit is ingesteld op Uit, wordt elk geluid dat door het besturingselement wordt afgespeeld, gedempt , met uitzondering van de focus.

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

Is dit het juiste geluid?

Wanneer u een aangepast besturingselement maakt of het geluid van een bestaand besturingselement wijzigt, is het belangrijk om inzicht te hebben in het gebruik van alle geluiden die het systeem biedt.

Elk geluid heeft betrekking op een bepaalde basisinteractie van de gebruiker en hoewel geluiden kunnen worden aangepast om op elke interactie af te spelen, dient deze sectie om de scenario's te illustreren waarin geluiden moeten worden gebruikt om een consistente ervaring in alle UWP-apps te behouden.

Een element aanroepen

Het meest voorkomende door controle geactiveerde geluid in ons systeem is het Aanroepen geluid. Dit geluid wordt afgespeeld wanneer een gebruiker een besturingselement aanroept via een tik/klik/enter/spatiebalk of op de knop A op een gamepad drukt.

Normaal gesproken wordt dit geluid alleen afgespeeld wanneer een gebruiker zich expliciet richt op een eenvoudig besturingselement of besturingselementonderdeel via een invoerapparaat.

Als u dit geluid wilt afspelen vanuit een bedieningsgebeurtenis, roept u de Play-methode aan vanuit ElementSoundPlayer en geeft u ElementSound.Invokedoor.

ElementSoundPlayer.Play(ElementSoundKind.Invoke);

Inhoud weergeven en verbergen

Er zijn veel flyouts, dialoogvensters en wegklikbare UI's in XAML, en elke actie die een van deze overlays activeert, moet een Weergeven of Verbergen geluid aanroepen.

Wanneer een overlay-inhoudsvenster wordt weergegeven, moet het Geluid weergeven worden aangeroepen:

ElementSoundPlayer.Play(ElementSoundKind.Show);

Als een overlay-inhoudsvenster wordt gesloten (of licht wordt verborgen), moet het Verbergen geluid worden afgespeeld.

ElementSoundPlayer.Play(ElementSoundKind.Hide);

Wanneer u binnen een app-pagina navigeert tussen deelvensters of weergaven (zie NavigationView), wordt er meestal tweerichtingsbeweging toegepast. Dit betekent dat u naar de volgende weergave of het vorige venster kunt gaan, zonder dat u de huidige app-pagina verlaat waarop u zich bevinden.

De audio-ervaring rond dit navigatieconcept wordt door de MovePrevious - en MoveNext-geluiden omvat.

Wanneer u naar een weergave/paneel gaat dat wordt beschouwd als het volgende item in een lijst, roep:

ElementSoundPlayer.Play(ElementSoundKind.MoveNext);

En wanneer u naar een vorige weergave/deelvenster in een lijst overstapt, beschouwd als het vorige item, roept u het volgende aan:

ElementSoundPlayer.Play(ElementSoundKind.MovePrevious);

Navigeer terug

Wanneer u vanuit de huidige pagina naar de vorige pagina in een app navigeert, moet het GoBack-geluid worden aangeroepen:

ElementSoundPlayer.Play(ElementSoundKind.GoBack);

Focussen op een element

Het focusgeluid is het enige impliciete geluid in ons systeem. Wat betekent dat een gebruiker niet rechtstreeks met iets communiceert, maar nog steeds een geluid hoort.

De focus treedt op wanneer een gebruiker door een app navigeert, dit kan zijn met de gamepad/toetsenbord/afstandsbediening of kinect. Normaal gesproken wordt het Focus geluid niet afgespeeld bij hoveracties van de muis of het aanwijzen ervan.

Als u een besturingselement wilt instellen om het focusgeluid af te spelen wanneer uw besturingselement de focus krijgt, roept u het volgende aan:

ElementSoundPlayer.Play(ElementSoundKind.Focus);

Geluiden voor Fietsfocus

Als extra functie voor het aanroepen van ElementSound.Focus zal het geluidssysteem standaard 4 verschillende geluiden doorlopen op elke navigatietrigger. Dit betekent dat geen twee identieke focusgeluiden direct achter elkaar worden afgespeeld.

Het doel achter deze fietsfunctie is om te voorkomen dat de focusgeluiden monotonisch worden en niet merkbaar worden door de gebruiker; focusgeluiden worden het vaakst afgespeeld en moeten daarom het meest subtiel zijn.

De voorbeeldcode halen