双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

求教下speex编解码的问题

chenjiawei007 chenjiawei007 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我是用dsound进行音频采集,采集出来的数据都是在堆中管理,

现在考虑对音频的编解码,

选择了speex进行编解码,我尝试将一个short [200]数组编码解码,看看效果,

但是解码后数据一直没有出来,请懂的朋友指点下,

下面是我的代码

int _ErrorFlag = 0;

char _Output_Temp[200] = { 0 };

//编码
SpeexBits _Bits;

void* _State;

//所要编码的数组
short _Input[200] = { 0 };

for ( int i = 0; i < 200; i++ )
{

_Input[i] = 1;

}


_State = speex_encoder_init( &speex_nb_mode );

//设置编码质量
int quality_value = 8;

speex_encoder_ctl( _State, SPEEX_SET_QUALITY, &quality_value );

speex_bits_init( &_Bits );

speex_bits_reset( &_Bits );


speex_encode_int( _State, _Input, &_Bits );

int nbBytes = speex_bits_write( &_Bits, _Output_Temp, 200 );

speex_encoder_destroy( _State );

speex_bits_destroy( &_Bits );


//解码
SpeexBits _Bits_De;

void* _State_De;

//解码数组
short _Output[200] = { 0 };

_State_De = speex_decoder_init( &speex_nb_mode );

speex_bits_init( &_Bits_De );

speex_bits_read_from( &_Bits_De, _Output_Temp, nbBytes );

quality_value = 8;

speex_decoder_ctl( _State_De, SPEEX_SET_QUALITY, &quality_value );



//返回结果为0 但是_Output仍然为0.而不是1....
int nRet = speex_decode_int( _State_De, &_Bits_De , _Output );

speex_decoder_destroy( _State_De );

speex_bits_destroy( &_Bits_De );
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
chenjiawei007
VC/MFC 16,551 成员 421,605 内容