Closed bylijian closed 5 years ago
sd_buffer[i] = (pcm_buffer[i 2] | (pcm_buffer[i 2 + 1] << 8)); 这个代码有问题,pcm_buffer[i*2+1]的数据是byte的,对它进行左移八位,结果是全0!!!
这个转换是可以的哈,我再我的项目里面和课程里面都用到了的。还有这是处理ffmepg重采样后正确的PCM数据!!!
可能是场景不一样,如果是这样,sd_buffer[i] = (pcm_buffer[i 2] | (pcm_buffer[i 2 + 1] << 8)); 和sd_buffer[i] = pcm_buffer[i * 2]<<8;的意义应该是一样的。。。
对 这种要根据自己的使用场景灵活变化
sd_buffer[i] = (pcm_buffer[i 2] | (pcm_buffer[i 2 + 1] << 8)); 这个代码有问题,pcm_buffer[i*2+1]的数据是byte的,对它进行左移八位,结果是全0!!!