资源简介
蘑菇街开源的 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.xm
文件 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个文件信息
相关资源
- Android和PHP开发最佳实践》源码.rar
- Android Zxing Demo
- 4399unity3d android 添加广告demo
- Android使用列表弹窗的代码
- Android解析http常见数据格式的代码
- Android的书籍翻页动画代码
- rk3288Android7.1.2rk808edp
- androidQQ高仿界面
- Android opencv c++配置工程
- Android百度定位(模仿QQ和微信位置分
- android 自写日历备忘录源码
- android platform-tools 23.01
- MVP android的入门小
- android拨号盘
- 音乐播放器源码Android端+Pc管理+服务器
- android 性格测试代码
- 论文+Android飞行射击游戏代码
- android写字板
- Android下拉刷新、上拉加载、左滑删除
- Android十个经典游戏-开源代码播放器,
- Android:自定义组件绘制柱状统计图
- Android XMPP好友列表+聊天
- android游戏摩天大楼源代码
- modbus4j完整源码
- 在android上开启服务端
- Android应用之《宋词三百首》
- Android应用源码带响铃提醒的简易备忘
- android记录温度变化曲线
- Android文件与上传文件的代码
- 基于Android平台的个人理财系统
评论
共有 条评论