wpf - C# NAudio - Changing audio playback position still plays a small buffer of old position -
i trying make basic mp3 player in c# , wpf, along naudio. added slider tracks current position in song allows drag different position , upon thumb.dragcompleted set song's position dragged it.
this works fine , all, except when make jump new position, still plays old position 1/5th or of second before changing. noticeable e.g. while singer in middle of singing "aaa", pause, drag point sings "ooo", play again, hear "aa-ooo". results in sounding pretty horrible.
so suppose audio playback has small 'buffer' remaining insists on playing before moving on. there way clear buffer? or setting position wrong?
i using waveout waveoutdevice , audiofilereader audiofilereader. slider called sldrplaybackprogress.
tried change position in song in 2 different ways already:
first method:
audiofilereader.currenttime = new timespan(0, (int)(math.floor(sldrplaybackprogress.value / 60)), (int)(math.floor(sldrplaybackprogress.value % 60))); second method:
audiofilereader.position = (long)(sldrplaybackprogress.value * audiofilereader.waveformat.averagebytespersecond); both of these individually or both combined still result in problem persisting.
you should call stop when reposition happens during pause. flush outstanding buffers and. under hood stop calls waveoutstop , pause calls waveoutpause, doesn't clear in progress playing buffers.
Comments
Post a Comment