问:程序员大牛与菜鸡分别写音乐播放器,播放同一首歌,音质会有差别吗?
答:差别非常大,笔记本外放我都能听出来。
while循环声音更纯,但是复杂混音解析度不够,for循环在对于i的操作过于规整化,导致内存固定周期的读写会产生干扰波,不属于白噪,会导致音乐略微失真。
好的播放器尽可能使用静态变量,不得不用非静态的时候尽量让变量创建和删除的时候有高频音或鼓点的遮盖,这个就非常需要经验了。不过现在可以用机器学习来解决。
内存回收一定要手动进行,不要用智能指针,更不要用java,java写出的播放器内存块不停移动的噪音就像一个施工队在你家窗外修路一样。Android音质一直不如iPhone和语言也有很大关系。
新手写的播放器往往只有一种解码方式,能听个响就算成功。高手写的播放器至少要有6个解码模块来适配不同类型的电流,还有一个电流预判的贝叶斯模块来预测电压波动和抗电涌,和一个解码器实时调参模块来做分支预测选择合适的参数适配电流,调参模块非常难,没有大cpu厂做分支预测5年以上经验的,基本搞不好。6个基本模块分别是针对水电,火电,风电,核电,电池和太阳能,但是现在城市供电都是混合供电,一般还需要一个卡尔曼滤波器来对6个解码模块加权来进行协作解码。
新手写的播放器在无外界电磁干扰,设备用电池的时候还勉强能听。但是需要外接电源的时候基本属于噪音生成器,高手写的播放器无论电池还是电源基本能达到一致。
值得一提的是,给变量取名也会对音质有所影响。大牛程序员会尽量使用同一风格的作曲家给变量取名,而菜鸟程序员则不会注意这一点,造成音质上有所欠缺。
【 在 xiongym 的大作中提到: 】
: 以前是冷冻CD。
: 还有CD边缘涂漆笔,提高反射率。
: 当年北京有个小杂志鼓吹这个。
: ...................
--
FROM 223.104.41.*