最近公司让我负责mac下的录音模块的开发,因为要做内置录音,模块分为两部分,虚拟设备和上层调用接口。本来事情做完了很开心(以前没做过mac下的开发,有点小成就感),可过了一段时间,测试部说我们的录音软件有问题,一录音就出现崩溃,找来找去都没找到问题的原因,产品又急着发布,本人的压力一下子大了起来。
经过测试,发现在mac 10.5 10.7上面的都运行挺好,唯独在10.6下就出现问题,而10.6系统开发部没有,测试部才有,测试机是不让装开发工具和放源码的。怎么办呢,又是找啊找,通过输出打印终于发现是调用ExtAudioFileDispose出了问题,出错的代码离这个函数很远,本人是通过比对查出来的。
没道理啊,不同平台会有不同的表现,而且是调用API出了问题。怎么办呢,到网上找了一下,同样的问题别人也碰到过,说是编码器问题,换了编码器也没解决。实在是没辙了,那就看文档,终于发现一个线索,在模块里调用了ExtAudioFileCreateNew,这个函数在10.6是标明被废弃的。是不是这个出了问题呢,本人抱着试试看的想法换了一个新函数,经过测试问题要真没出现了。
说到这里,我就要发点牢骚了,你说加新API就添加呗,老的你也考虑兼容吧,我们的产品因为没发布,问题影响不大,人家已经拿出去卖的产品就郁闷了。你说废弃就废弃,也太霸道了一点吧。这方面windows就做的比较好,老函数还能继续用,至少会延续几个版本让人有个准备。
一点想法,本人不常做mac开发,也可能是个人偏见,觉得做mac开发还是比windows开发麻烦很多。