您当前位置: 首页 » *生活* » now-way » object » 思考 » 关于wav文件头正确获取的启发

关于wav文件头正确获取的启发

2009-08-22 |

首先,为自己愚蠢的行为表示深深的歉意。自己多想了,今天也无聊的发了一条短信。好了,就这样了。忘记了!

首先说说我把C代码过度到C++之后的麻烦问题,由于C语言忘记的有点多了很多细节不是很记得了;只是一味的去调用anis C的函数来做事。至于C++基础不太好,把一些标准的方法和过程都给忘记了。

这个wav头文件是由多种类型变量组成,按照ascii码方式打开的话,应该在读取的时候不会存在问题。但是在C++的标准类里面出现了严重的问题,在读取某些字节的时候,出错。

这也许和C++在内存分配有关,换句话说,可能C++又比C离底层远了一截。

用纯C写的那个播放器,其实一点问题都没有,可以自动完成播放和结束。而对于用C++来存储wav的代码来说,播放不会结束。原因还在于文件指针指向的问题。可能C++中加入了防止内存泄漏和溢出的问题,所以怎么跳都要在末尾处,总是挑不到-1的地方。纯属猜测,可能与事实相反哈。

考虑了一下,其实底层下面没必要用C++来写。因为底层的东西越简单越好维护,复杂了维护起来就是个难事了。而且从性能上将C的性能也许并不比C++差。而且现在很多老外都是用C来写底层的,这和C 的特性也有很大关系吧。

由于自己水平和其他乱七八糟的问题,我打算把播放过程用C来写。对于某些特殊的地方采取C++作为辅助,毕竟C++还是提供了很多现成的功能。

现在要做的就是,让这个程序能够正确的播放wav。并且根据程序自适应调整,然后用Qt先搭建起gui来。能够实现简单的可视化播放功能。

再接着尝试引入flac和ape,至于cue。。。。。。这玩意还是打算先放一下。。。。没那本事去搞。这都和文件结构挂钩了。

就这样,然后在用arm-gcc编译,放到同学的arm测试一下。通过就买arm回来,并开始工作。等ape,flac搞定了。就可以做p2p了。不过arm汇编是主要。