Beste,
ik werk momenteel aan een klein projectje waar ik video afspeel. Dit lukt perfect, alleen de bijbehorende audio afspelen lukt niet goed. Ik kan niet de volledige audio ophalen en afspelen, dit moet stuk voor stuk gebeuren.
Bij het afspelen zit er echter een 'tik' in het geluid.
De audio wordt opgehaald en gedecodeerd via de methode GetAudio. Deze levert een array van bytes met wav-data en een voorgaande WAV-header van 44 bytes.De audio wordt tegelijkertijd(iets vroeger) asynchroon opgehaald dus er is geen vertraging door het decoderen ervan.
Deze array wordt dan doorgegeven aan WinMM.dll om het af te spelen.
Ik heb al zitten spelen met verschillende lengtes van audio maar het afspelen is nooit perfect. Op voorhand alle audio ophalen is niet direct een optie omdat dit 200+ MB is.
Zijn er betere oplossingen of doe ik iets verkeerd?
ik werk momenteel aan een klein projectje waar ik video afspeel. Dit lukt perfect, alleen de bijbehorende audio afspelen lukt niet goed. Ik kan niet de volledige audio ophalen en afspelen, dit moet stuk voor stuk gebeuren.
Bij het afspelen zit er echter een 'tik' in het geluid.
De audio wordt opgehaald en gedecodeerd via de methode GetAudio. Deze levert een array van bytes met wav-data en een voorgaande WAV-header van 44 bytes.De audio wordt tegelijkertijd(iets vroeger) asynchroon opgehaald dus er is geen vertraging door het decoderen ervan.
Deze array wordt dan doorgegeven aan WinMM.dll om het af te spelen.
C#:
1
2
3
4
5
6
7
| byte[] audio = audioStream.GetAudio(second, length); [DllImport("winmm.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)] static extern bool PlaySound( byte[] pszSound, IntPtr hMod, SoundFlags sf); |
Ik heb al zitten spelen met verschillende lengtes van audio maar het afspelen is nooit perfect. Op voorhand alle audio ophalen is niet direct een optie omdat dit 200+ MB is.
Zijn er betere oplossingen of doe ik iets verkeerd?