private void AudioDateiVorladen(Geraeusche welchesGeraeusch) { if (!this.geraeuschKatalog.ContainsKey(welchesGeraeusch)) { var audioDateiName = Audio.GetAudioDateiName(welchesGeraeusch); var geraeuschDatei = Assembly.GetExecutingAssembly().GetManifestResourceStream( typeof(RessourcenKlasse), $@"Geraeusche.{ audioDateiName }" ); this.geraeuschKatalog.TryAdd(welchesGeraeusch, geraeuschDatei); } }
private static string GetAudioDateiName(Geraeusche welcheDatei) { switch (welcheDatei) { case Geraeusche.SchussStart: return("projectile-fired.wav"); case Geraeusche.SchussEinschlag: return("decay-crumble.wav"); } return(null); }
public void GeraeuschAbspielen(Geraeusche welchesGeraeusch) { Task.Run(() => { this.AudioDateiVorladen(welchesGeraeusch); if (this.geraeuschKatalog.TryGetValue(welchesGeraeusch, out Stream audioDatei)) { audioDatei.Seek(0L, SeekOrigin.Begin); lock (this.soundPlayer) { soundPlayer.Stream = audioDatei; soundPlayer.Play(); } } }); }