求教下speex编解码的问题
我是用dsound进行音频采集,采集出来的数据都是在堆中管理,
现在考虑对音频的编解码,
选择了speex进行编解码,我尝试将一个short [200]数组编码解码,看看效果,
但是解码后数据一直没有出来,请懂的朋友指点下,
下面是我的代码
现在考虑对音频的编解码,
选择了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 );
...全文
相关推荐
android 利用speex 音频降噪,回声消除demo
android 利用speex 音频降噪,回声消除demo,提高音频播放质量
STM32_Speex
由ST官方提供的Speex编解码库,有别于Speex官方库,对STM32有更好的支持
android使用speex库对音频流进行编解码
android使用audioRecorder获取音频流,使用speex库对音频流进行编解码,然后进行音频通话
android上实现speex编解码
根据http://blog.csdn.net/xyz_lmn/article/details/8013490一文编译的,感谢原文作者。
Speex编解码器手册 1.2Beta3版
Speex编解码器手册 1.2Beta3版 The Speex Codec Manual Version 1.2 Beta 3 Speex编解码器(http://www.speex.org/)的存在是因为需要一款开源且免软件专利使用费的语音编解码器,这是任何开源软件可用的必要条件。本质上来说,Speex相对于语音正如Vorbis(注:免费音乐格式)相对于音频/音乐。不像许多其他语音编解码器,Speex不是为移动电话而设计,而是为分封网络(packet network)和网络电话(VoIP)而设计的。



