• 大小: 3.91MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-27
  • 语言: Java
  • 标签: Android  开源项目  IM  

资源简介

蘑菇街开源的 IM 项目 TeamTalk,包括 Android、iOS、Win、Mac 客户端以及 Server端、管理后台、环境自动部署,大赞!支持文字、音频、图片、表情、文件传输、屏幕振动、分组等,做聊天的同学可以看看 开源地址在https://github.com/mogutt

资源截图

代码片段和文件信息

#include 

#include 
#include 
//#include 
//#include 

/*start*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

// the header length of the RTP frame (must skip when en/decoding)
static const int rtp_header = 0;

int codec_status = 0;

const int CODEC_OPENED = 1;
const int CODEC_CLOSED = 0;

int aec_status = 0;

const int AEC_OPENED = 1;
const int AEC_CLOSED = 0;

SpeexEchoState *echoState;
SpeexPreprocessState *den;
int sampleRate = 16000;
/*end*/

static int codec_open = 0;

static int dec_frame_size;
static int enc_frame_size;

static SpeexBits ebits dbits;
void *enc_state;
void *dec_state;

static JavaVM *gJavaVM;

extern “C“ JNIEXPORT jint JNICALL Java_com_mogujie_tt_support_audio_Speex_open(
JNIEnv *env jobject obj jint compression) {
int tmp = 0;
if (codec_open++ != 0)
return (jint) 0;

speex_bits_init(&ebits);
speex_bits_init(&dbits);

enc_state = speex_encoder_init(&speex_nb_mode);
dec_state = speex_decoder_init(&speex_nb_mode);

tmp = compression;
speex_encoder_ctl(enc_state SPEEX_SET_QUALITY &tmp);
speex_encoder_ctl(enc_state SPEEX_GET_frame_SIZE &enc_frame_size);
speex_decoder_ctl(dec_state SPEEX_GET_frame_SIZE &dec_frame_size);

SpeexPreprocessState * m_st;
m_st = speex_preprocess_state_init(enc_frame_size 8000);
int denoise = 1;
int noiseSuppress = -25;
speex_preprocess_ctl(m_st SPEEX_PREPROCESS_SET_DENOISE &denoise);
speex_preprocess_ctl(m_st SPEEX_PREPROCESS_SET_NOISE_SUPPRESS
&noiseSuppress);

return (jint) 0;
}

extern “C“ JNIEXPORT jint JNICALL Java_com_mogujie_tt_support_audio_Speex_encode(
JNIEnv *env jobject obj jshortArray lin jint offset
jbyteArray encoded jint size) {

jshort buffer[enc_frame_size];
jbyte output_buffer[enc_frame_size];
int nsamples = (size - 1) / enc_frame_size + 1;
int i tot_bytes = 0;

if (!codec_open)
return 0;

speex_bits_reset(&ebits);

for (i = 0; i < nsamples; i++) {
env->GetShortArrayRegion(lin offset + i * enc_frame_size
enc_frame_size buffer);
speex_encode_int(enc_state buffer &ebits);
}
//env->GetShortArrayRegion(lin offset enc_frame_size buffer);
//speex_encode_int(enc_state buffer &ebits);

tot_bytes = speex_bits_write(&ebits (char *) output_buffer
enc_frame_size);
env->SetByteArrayRegion(encoded 0 tot_bytes output_buffer);

return (jint) tot_bytes;
}

extern “C“ JNIEXPORT jint Java_com_mogujie_tt_support_audio_Speex_decode(
JNIEnv *env jobject obj jbyteArray encoded jshortArray lin
jint size) {

jbyte buffer[dec_frame_size];
jshort output_buffer[dec_frame_size];
jsize encoded_length = size;

if (!codec_open)
return 0;

env->GetByteArrayRegion(encoded 0 encoded_length buffer);
speex_bits_read_from(&dbits (char *) buffer encoded_length);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-11-04 08:55  TTAndroidClient-master\
     文件         318  2014-11-04 08:55  TTAndroidClient-master\.gitignore
     文件        4237  2014-11-04 08:55  TTAndroidClient-master\README.md
     目录           0  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\
     文件       12292  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.DS_Store
     文件         475  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.classpath
     文件         814  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.project
     目录           0  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.settings\
     文件          88  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.settings\org.eclipse.core.resources.prefs
     文件         173  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\.settings\org.eclipse.jdt.core.prefs
     文件        5408  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\AndroidManifest.xml
     文件        3705  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\README
     目录           0  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\
     文件        1278  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\Android.mk
     文件          57  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\Application.mk
     目录           0  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\
     文件          17  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\Makefile.am
     文件       14372  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\Makefile.in
     目录           0  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\
     文件         358  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\Makefile.am
     文件       13456  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\Makefile.in
     文件       13947  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex.h
     文件        6669  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_bits.h
     文件        2172  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_buffer.h
     文件        5045  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_callbacks.h
     文件         225  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_config_types.h
     文件         241  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_config_types.h.in
     文件        6453  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_echo.h
     文件        4103  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_header.h
     文件        7219  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_jitter.h
     文件        8609  2014-11-04 08:55  TTAndroidClient-master\mgandroid-teamtalk\jni\include\speex\speex_preprocess.h
............此处省略840个文件信息

评论

共有 条评论