我写了一个播放一种特定文件(比如.yuu文档)的播放器(其实我是修改),这个播放器能播放这种特定的文件,但是播放的时候是有点卡,不知道什么原因?我先把这个播放器的播放思想说下,然后说下我的观点:大家看看有没有解决的方法,我暂时想不出更好的解决方法?可是我总觉的应该没问题,可是播放的时候就有点中断的样子,好了,说了这么多,开始进入正题了!播放器的思想:
运行程序当选择.yuu文档的时候创建一进程对.yuu文档进行解压,当然解压算法没有问题,解压后的数据放在一个Buffer里(可以任意大,它是个指针),比如*pDecBuffer里,然后播放的时候用API函数进行播放,每一次播放固定的大小!播放完固定大小完后,又从*pDecBuffer里取出固定的大小进行播放,直到播放完!(思想就是这样)
播放效果有点卡(即有点中断)
我对上面的问题的出现这样分析:
(1) 可能解压后的数据还没来的及放进*pDecBuffer里,而播放的速度很快,因此没有播放解压后的数据
    而播放*pDecBuffer里默认的乱七八糟的数据,(也就是说解压速度赶不上播放的速度,从而导致播放    乱七八糟的数据),因此出现有点卡!(2) 可能播放完后,又从*pDecBuffer里取出固定的大小进行播放,取数据的过程可能要存在点时间,出      现时间的间隔,因此出现有点卡!我对上面的问题这样这样解决:
(1) 解压速度赶不上播放的速度,这好办,我延时呀!延时一段时间再进行播放!等解压完后再播放!(可是我不管延时多长时间,根本的问题还是没有解决)
(2)  可能播放完后,又从*pDecBuffer里取出固定的大小进行播放,可能要存在点时间,可是我是用WINAPI函数进行设置!如:
     waveOutOpen(,,,(DWORD)waveOutProc,,)
     其中waveOutProc函数是一个回调函数,不断的取pDecBuffer里取出固定的大小进行播放。(当然播放是由别的WINAPI函数来,上面的WINAPI函数只不过是进行播放前的准备设置而已)我认为这里应该是系统会处理好,应该不会延时的!(可是问题还是没有解决)
问题还没有解决,也不知道是什么原因,搞不懂??
请问有经验的说下?怎么做才能消除这个“卡”的现象!(其实也就是中断的意思)
谢谢!