小弟遇到一个瓶颈,麦克风那边获取到了数据,发给我的应用层接口如下: public void onVoipDataOutput(byte [] bytes , int i )bytes 就是底层发给我的MIC 数据, i 就是这个数据的长度; 现在我想把这个数据写成一个语音文件,并使用播放器放出来。使用的是java 代码。 谁有这方面的经验? 请指教!

解决方案 »

  1.   

    用avilib.c这个文件去写。大致流程如下:
    avi_fd = AVI_open_output_file(mFd);
    if(avi_fd!=NULL)
    {
                    /*这里的1是指单通道,44100是指采样率,16是指单位采样率是多少位的,255是指aac格式的,128是指比特率*/
    AVI_set_audio(avi_fd, 1, 44100, 16, 255, 128);    
                   
                     AVI_write_audio(avi_fd, (char*)bytes , i);
                     AVI_close(avi_fd);
    }
            如果你的语音是pcm格式的话,那上面的255,就要换成WAVE_FORMAT_PCM。
      

  2.   

    avilib.c的代码,你可以去我的博客资源里下载。你用的java代码的话,可以将它封装成一个nativie的接口就可以了。