Diskuze: SoundPlayer více zvuků najednou (C# WPF)
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 15 zpráv z 15.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


ja to resil takhle:
void PlaySound(string soundFile)
{
FileInfo fi = new FileInfo(soundFile);
if (fi.Exists)
using (var player = new System.Media.SoundPlayer(fi.FullName))
{
player.Play();
}
}
ale zalezi na pouziti, pokud ti nevadi nacitat ten zvuk pokazdy znove ze souboru
Jak píše Luboš no, když vytvoříš 2x instanci SoundPlayer, tak se
nepřepíšou ty zvuky, ne? 
To mi nevadí, ale stejně se mi to stoplo, oba zvuky jsem upravil takhle (jen s jinou cestou):
FileInfo fi = new FileInfo("beep.wav");
if (fi.Exists)
using (var player = new System.Media.SoundPlayer(fi.FullName))
{
player.Play();
}
Vytvářím je oba v jiné metodě a jmenují se taky jinak, stejně se ten spuštěný první vždycky stopne :/
Pár věcí jsem zkoušel, například tohle:
Task.Factory.StartNew(PlaySound1);
Task.Factory.StartNew(PlaySound2);
Stejně se to stoplo
jestli myslíš něco takového:
MediaPlayer mp = new MediaPlayer();
mp.Open(new Uri(@"C:\Users\Erik\Downloads\thank-god-its-friday.wav", UriKind.Absolute));
mp.Play();
Tak to funguje celkem špatně (občas to ten zvuk prostě neudělá, když na pozadí hraje jiný atd.), SoundPlayer funguje mnohem líp, aspoň podle mě, proto ho chci použít
Sorry, MediaElement, ne Player. Četl jsi ten tutoriál?
Mě MediaElement fungoval dobře, i více zvuků zároveň.
SoundPlayer se pro přehrávání více stop současně nedá
použít. S tím si prostě neporadíš. Ani více instancí, ani
vláken ti nepomůže.
SoundPlayer se používá například pro přehrávání zvuků jako jsou
varování, je tak řešený, aby nehrálo víc stop na jednou, ale pouze
poslední načtená.
Použij MediaElement nebo třeba DirectX.AudioVideoPlayback nebo MCI
Nevšiml jsem si, že to je odkaz, mrknu na to
Nějak mi to nefunguje, nemohl bys mi prosím napsat jednoduchý kód pro
přehrání nějakého zvuku?
Tohle nefunguje:
XAML:
<MediaElement Name="mePlayer" Grid.Row="1" LoadedBehavior="Manual" Stretch="None" Source="C:\Users\Erik\Downloads\thank-god-its-friday.wav"/>
CODE BEHIND:
mePlayer.Play();
A taky jsem si všiml, že tam není žádná metoda ve smyslu PlayLooping, to bych musel použít Timer??
Myslím že musíš ještě nastavit mePlayer.Position na 0.
Dále máš k dispozici event, když skončí soundtrak (něco jako MediaEnded),
takže tam bych dal ten loop.
Zobrazeno 15 zpráv z 15.