美文网首页音视频iOS开发技术讨论
lame实时mp3编码录音过程中的pcm数据

lame实时mp3编码录音过程中的pcm数据

作者: huisedediao | 来源:发表于2018-11-29 17:10 被阅读0次

    本文demo:XBVoiceTool

    包括录音、播放PCM、播放MP3|AAC,混音、实时AAC编码pcm、实时MP3编码pcm等

    度娘搜lame转mp3,基本上都是把pcm文件转mp3文件的,不符合录音过程实时编码的需求,记录下实时编码的办法,其实就几行代码
    - (void)encodePCMData:(void *)pcmData len:(int)len completeBlock:(MP3EncodeCompleteBlock)completeBlock
    {
        int mp3DataSize = len;
        
        unsigned char mp3Buffer[mp3DataSize];
    
        /**
         这里的len / 2,是因为我们录音数据是char *类型的,一个char占一个字节。而这里要传的数据是short *类型的,一个short占2个字节
         
         lame_encode_buffer             //录音数据单声道16位整形用这个方法
         lame_encode_buffer_interleaved //录音数据双声道交错用这个方法
         lame_encode_buffer_float       //录音数据采样深度32位浮点型用这个方法
         */
        int encodedBytes = lame_encode_buffer(lameClient, pcmData, pcmData, len / 2, mp3Buffer, mp3DataSize);
        
        if (completeBlock)
        {
            completeBlock(mp3Buffer,encodedBytes);
        }
    }
    

    相关文章

      网友评论

        本文标题:lame实时mp3编码录音过程中的pcm数据

        本文链接:https://www.haomeiwen.com/subject/vgpfcqtx.html