iNand下播放音频有断续

wangzicc   2009-6-3 16:35 楼主
用waveOutXX系列函数编写播放接口,发现在iNand也就是SD Card下的音频播放起来不连续,停停顿顿。后来发现因为iNand下读写文件速度比Nand flash慢了100倍左右。请问有什么好的思路能提供一下,谢谢。

相关另外一个问题见:
http://topic.eeworld.net/u/20090531/18/427890a8-8ecc-456e-97d1-23d0dc306423.html

慷慨给分啊!!!

回复评论 (9)

增大缓存是不是可以解决这个问题
点赞  2009-6-3 16:58
buffer能放多大,buffer大了读写时间更长,停顿次数少了,但是每次停顿更明显了。。。
点赞  2009-6-3 17:26
所有的SD Card都这样,还是个别现象?

现在很多产品使用SD Card做为存贮介质,用于播放视频和音频,都不存在LZ所说的这个问题。
点赞  2009-6-3 17:55
引用: 引用 3 楼 91program 的回复:
所有的SD Card都这样,还是个别现象?

现在很多产品使用SD Card做为存贮介质,用于播放视频和音频,都不存在LZ所说的这个问题。


您的回答让我很启发,尝试了几个SD Card都是相同的问题,看来要仔细描述一下具体算法了:

原来项目一直使用windows自带的playsound函数,这个函数最大的问题就是要一次性把音频文件全部读进缓存再播放,这样遇到大的wav文件反应时间就比较长,应用中例如:电话来电提示框已经跳出来,但是来电铃声还没有响(延迟后响)。所以我们决定自己写一个类似playsound的函数(接口相同,自己实现),然后把一个音频文件一边读取一边播放的办法(提高反应速度),后来发现由于SD Card读文件的速度很慢,导致上一个音频已经waveoutwrite了,后一段音频的指针还没有被读到,产生了延迟。
点赞  2009-6-3 18:57
LZ可以去看看noRains大侠的CMedia类,写的不错。

我的音频播放器,就是根据这个写的。播放SD卡的东东,没有任何问题。

[url=http://blog.eeworld.net/benny5609/archive/2008/05/14/2446061.aspx][/url]
点赞  2009-6-3 19:15
再来一个原版的地址:
[url=http://blog.eeworld.net/norains/archive/2007/07/27/1712083.aspx][/url]
点赞  2009-6-3 19:16
好的好的,马上拜读!!
点赞  2009-6-3 19:35
发现问题了,在播放waveOutXXX的过程中,我使用了callback函数的双缓冲形式,这个是导致速度慢的原因。如果使用单缓冲读写速度两种存储器就相差2倍而已,我就想不通了,为什么用callback函数就不行呢。。。
点赞  2009-6-4 11:20
问题解决了!虽然解决但是还是没搞明白,郁闷啊。。。
点赞  2009-6-5 16:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复