- 博客(23)
- 资源 (13)
- 收藏
- 关注
原创 WebRTC android h264 编解码适配(三)
最近升级webrtc(m72版本),发现webrtc源码发生了不小的变动,尤其是在视频编解码这块,之前的MediaCodecVideoEncoder,MediaCodecVideoDecoder已经不再使用了,改成HardwareVideoDecoderFactory,HardwareVideoEncoderFactory了,创建编解码器也交给了上层去创建了,下面是创建编解码器的代码:...
2019-08-23 11:15:21
2428
7
原创 WebRTC android h264 编解码适配(二)
最近一段时间接到不少android客户反馈,看到对方的视频是绿屏,还有一些反馈对方看不到自己的视频,由于我们使用的是h264硬编解码,首先想到的是编解码这块出现了问题。先看绿屏的问题,收集了下反馈机型,主要集中在cpu为联发科MT6735至MT6755的机器上,使用的硬件编解码器是OMX.MTK.**,随便在云真机测试平台找了台机器-华为畅享5(TIT-AL00)测试,果然是绿屏。打开webr...
2019-04-18 13:35:38
2536
2
原创 WebRTC android h264 编解码适配
自从Cisco 宣布旗下的H264 Codec开源为OpenH264,并且替所有OpenH264的使用者支付了H264的专利费,WebRTC也随即对h264进行了支持,在Android平台, 软编用 OpenH264, 软解用FFMPGE, 硬编硬解用 MediaCodec. 在android和iOs中软编软解默认是禁止的,要想启用需要把OpenH264和FFMPGE编译进来,这样就会大大增加库...
2019-03-25 18:42:02
3686
6
原创 WebRTC stun turn ice简介
Webrtc在完成sdp交换后,理论上就可以进行p2p视频通讯了,然而实际上大部分客户端都位于一个或多个NAT之后,或者一些杀毒软件和防火墙还阻止了某些端口和协议,或者一些公司的代理等等,这样就会导致客户端无法知道自己的外网IP及端口,进而无法进行媒体数据传输,如下图: (本图来自网络)STUN:Session Traversa...
2019-03-19 14:26:36
535
原创 WebRTC SDP 解析
SDPsdp(SessionDescriptionProtocol)是一种会话描述协议,属于文本协议,即WebRTC中常说的信令(Signalling),是WebRTC用来协助建立p2p通讯的。主要用于协商双方通讯过程,传递基本信息,如:会话控制信息,用来开始和结束通话,即开始视频、结束视频这些操作指令;处理错误的消息;元数据,如各自的音视频解码方式、带宽;网络数据,对方的公网IP、端口、...
2019-03-06 11:43:56
2531
1
原创 webrtc android 编译
折腾了好几天,终于把webrtc android编译成功了,不禁感慨:webrtc android编译实在太难了,但是编译成功之后,感觉实在又太简单了,简单是因为webrtc所有编译工作已经全部都写在了脚本里了,你甚至不不需要去管什么JDK,Android sdk,ndk环境配置等等,因为所有这一切只需要执行一个脚步命令,统统搞定,简直就是良心之作啊 ,哈哈。 但是如果你完全按照官方文档来...
2017-02-11 19:12:47
5201
原创 Android NDK之接口统一
前提:在Android下使用NDK可以完成C++与Java的相互调用,一般是定义一个java类和一个jni C++类去完成C++与java的通信,在java类中声明native方法,然后再jni C++类中去实现,同时可以在jni c++中去回调java类中的方法,随着工程的逐渐增大,activity的增多,在很多acvitiy中都需要这种回调机制,那么如何只在一个java类和一个jni c++类
2014-01-20 17:25:33
1803
原创 如何获取手机短信和通话记录信息
android 下不同进程是通过ContentResolver共享数据的,下面通过这个类去查询手机上所有联系人的信息和通话记录,包含号码、内容、日期,通话时长等信息一、获取手机短信信息public void getSmsInPhone() { final String SMS_URI_ALL = "content://sms/";
2013-12-01 17:43:38
2172
原创 IOS使用AVAudioPlayer播放mp3歌曲文件并监听来电打断
本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放、暂停、继续操作,音乐音量控制、播放进度显示,同时监听来电打断事件一、控件初始化- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. //初始化三个button
2013-11-14 17:36:19
1715
原创 如何从联系人里加载列表(ListView)
一、效果图选择listview一行后执行打电话操作二、如何实现1、从手机里读取联系人信息 /**联系人名称**/private ArrayList mContactsName = new ArrayList(); /**联系人电话**/private ArrayList mContactsNumber =
2013-11-04 16:11:49
824
原创 使用TabHost实现QQ标签栏
一、实现效果图如下:二、实现实现比较简单,主要是使用TabHost去切换四个Activity,关键部分在xml布局上,主要布局写法如下:<TabHost android:id = "@android:id/tabhost" android:layout_width = "fill_parent" android:layout_height="fill_
2013-10-31 16:35:57
1116
原创 如何从相册加载图片
从相册选择图片Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");startActivityForResult(intent, 1);startActivityForResult执行后的响应如下:@Overrideprotected void onActivit
2013-10-30 15:55:07
871
原创 Android NDK 使用JSON实现数据封装传输
一、使用JSON的原因JSON是一种数据交换方式,在android开发中,一般大型的项目开发在底层使用C/C++实现,上层界面使用Android/js实现,这样必然会使用NDK,使用NDK又会牵涉到数据传送,包括从C++传到java、从java传到c++,普通的传送方式是针对每一种数据类型编写一个native函数或Java回调函数,如果程序足够复杂,就会有N多的这样的函数,维护起来极其不方便,
2013-10-16 16:47:32
4469
原创 仿微信启动界面
一、效果图开始界面:引导界面:二、实现首先判断是否是第一次启动,是第一次启动启动引导界面,不是直接进入登录界面SharedPreferences preferences = getSharedPreferences( SHAREDPREFERENCES_NAME, MODE_PRIVATE); isFirstIn = prefer
2013-10-12 16:46:17
1321
原创 android Handler用法
一、Handler用处一般在主线程中定义,用于与子线程数据通信,主线程一般用于UI的更新操作,如果放在子线程中是很危险的,比如文件上传、下载等操作,这些耗时的操作放在主线程中会导致程序卡住,如果超过五秒钟系统会强制关闭进程并给一个强制关闭的提示,此时应该把这些操作放在一个子线程中,待操作完成后用Message给Handler发一个消息,然后Handler去处理这个消息并配合主线程更新UI。
2013-10-10 21:33:29
2071
原创 android NDK 环境搭建及helloworld测试
一、环境搭建android环境的搭建参考:http://blog.youkuaiyun.com/m370809968/article/details/12432759下载android ndk r9,下载后解压文件名为android-ndk-r9运行eclipse,配置一下ndk路径就可以了 window->Preferences,如下图环境搭建好了,下面写个测试程序验证一下简单创
2013-10-09 18:35:56
3874
原创 Android Spinner控件使用方法
Spinner是适配器控件的一种,提供一种下拉列表形式的控件,运行后效果如下:使用方法比较简单,直接上代码activity_main.xml xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height
2013-10-08 16:45:46
2181
原创 Android环境搭建
环境搭建分两步进行1、下载jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载时选择与自己的系统相匹配的选项,下载后直接运行安装2、下载android sdk 下载地址:http://developer.android.com/sdk/index.html最新版本的androi
2013-10-08 15:07:39
1210
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人