首页 文章 精选 留言 我的

精选列表

搜索[文档处理],共10000篇文章
优秀的个人博客,低调大师

webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing...

2017-05-22更新! http://pan.baidu.com/s/1nvbTcRf jni修改后的代码,可以直接ndk-build出so文件!!!!!!!! ------------------------------------------------------- webrtc代码在android和chromium项目中都有。但是android中的那个带有Android.mk,稍微修改下就能用ndk-build编译出libwebrtc_audio_preprocessing.so git clone https://android.googlesource.com/platform/external/webrtc 更新 cd webrtc apm几个模块: NS(Noise Suppression 噪声抑制)、 VAD(Voice Activity Detection 静音检测)、 AECM(Acoustic Echo Canceller for Mobile 声学回声消除) AGC(Auto Gain Control 自动增益控制) 刚开始目录: 删除了modules下的audio_coding目录,并把src改名为webrtc了,当然同时得修改Android.mk中对audio_coding相关mk的引用,还要修改路径,原来是src,要改成webrtc. 最后会生成libwebrtc_audio_coding.so,这个需要在Android.mk中修改。其中有个 LOCAL_MODULE := libwebrtc_audio_coding 把相关的删除,从 include $(CLEAR_VARS) 。。。。 include $(BUILD_SHARED_LIBRARY) 这个也可以通过上面一样的办法删除 LOCAL_MODULE := libwebrtc_audio_coding_gnustl_static 其它文件删除:MODULE_LICENSE_BSD,NOTICE,TODO test目录删除,.git目录删除 最终效果: 发现在modules\audio_processing\test目录下有unit_test.cc ndk-build编译,几乎很少改动。即可生成libwebrtc_audio_preprocessing.so =================================== 上面错误解决:需要将源代码放在一个叫jni的目录中。 解决: #include <map>报错 由于NDK默认使用最小C++运行时库进行项目的编译,导致无法编译WebRTC中使用诸如std::map等STL容器的源码。因此我们需要自行设定适合本项目的C++运行时库gnustl_static。 解决: Application.mk APP_ABI := armeabi-v7a APP_STL := gnustl_static APP_PLATFORM :=21 版本问题, 好像webrtc对Android的版本要求过高,至少要求2.3.1,所以从原来的2.2换成2.3.1即可 解决办法: #APP_PLATFORM :=android-8 //对应2.2 APP_PLATFORM := android-9 //对应2.3.1#APP_STL := stlport_staticAPP_STL := gnustl_static 2. undefined reference to 'WebRtcSpl_SqrtFloor' 这个函数在spl_sqrt_floor.c,在 webrtc\common_audio\signal_processing\Android.mk中的LOCAL_SRC_FILES加上 spl_sqrt_floor.c \ 生成的so 附: 参考: https://github.com/webrtc/samples

优秀的个人博客,低调大师

iOS:quartz2D绘图(处理图像,绘制图像并添加水印)

绘制图像既可以重写drawRect:方法并在该方法中绘制,也可以不用重写该方法,它有封装好的函数获取自己的图像绘制上下文,即UIGraphicsBeginImageContext(CGSize size)和UIGraphicsEndImageContext(),有了它们,不在需要重写drawRect:方法,就可以在其他任何方法中绘制图像。 具体的实例如下: 步骤: 1、布局故事板,在里面添加一个合适大小的imageView,另外再拖入三个按钮,分别用来完成绘图、给图像加水印、保存的功能,同时拖入需要图像素材。 2、对这些控件进行IBOutLet关联到控制器类ViewController中,声明属性或功能 3、分别开始各自功能实现 <1>点击绘图按钮开始绘制图片 - (IBAction)drawImage:(UIButton *)sender { //开始图像绘制的上下文 UIGraphicsBeginImageContext(self.imageView.frame.size); //获取当前图形绘制的上下文 CGContextRef context = UIGraphicsGetCurrentContext(); //绘制一个矩形 CGContextAddRect(context, CGRectMake(100, 100, 100, 100)); //设置绘制属性 [[UIColor redColor]set]; //绘制路径 CGContextDrawPath(context, kCGPathEOFillStroke); //从图像绘制上下文获取图片 self.image = UIGraphicsGetImageFromCurrentImageContext(); //结束图像绘制的上下文 UIGraphicsEndImageContext(); //显示图像绘制的上下文 [self.imageView setImage:self.image]; } 绘制的图片截图为: <2>点击加水印按钮开始绘制图像并添加水印 - (IBAction)addWaterMark:(UIButton *)sender { //开始图形绘制上下文 UIGraphicsBeginImageContext(self.imageView.frame.size); //绘制图片 UIImage *imageface = [UIImage imageNamed:@"2"]; [imageface drawInRect:self.imageView.bounds]; //绘制水印 NSString *str = @"Wellcome to BeiJing"; [str drawAtPoint:CGPointMake(50, 40) withAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName:[UIFont systemFontOfSize:18]}]; //从当前上下文获取图片 self.image = UIGraphicsGetImageFromCurrentImageContext(); //结束图像绘制上下文 UIGraphicsEndImageContext(); //显示带水印的图片 [self.imageView setImage:self.image]; } 绘制的带文字水印的图像截图为: <3>点击保存按钮将添加过水印的图像保存到沙盒目录下或系统的相机相册下 - (IBAction)saveImage:(UIButton *)sender { // //设置图片保存的路径 // NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // NSString *doucument = [documents lastObject]; // NSLog(@"%@",doucument); // // //拼接文件路径 // NSString *fileName = [doucument stringByAppendingPathComponent:@"watermark.png"]; // // //获取图片中的data // NSData *imageData = UIImagePNGRepresentation(self.image); // // //将图片数据写入沙盒文件保存起来 // [imageData writeToFile:fileName atomically:YES]; //保存到相册 UIImageWriteToSavedPhotosAlbum(self.image, nil, nil, nil); } 保存到相机相册下和沙盒目录下的图像截图为: 程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式! 分类: iOS高级 本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4869182.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册