一、直播的本质 实时推送/拉取音视频数据 二、视频直播流程 视频直播的流程可以分为如下几步: (1)采集 (2)处理 (3)编码和封装 (4)推流到服务器 (5)服务器流分发 (6)播放器流播放 ?
简介 观看手游直播时,我们观众端看到的是选手的屏幕上的内容,这是如何实现的呢?这篇博客将手写一个录屏直播 Demo,实现类似手游直播的效果。...获取屏幕数据很简单,Android 系统有提供对应的服务,难点在于传输数据到直播服务器,我们使用 RtmpDump 来传输 Rtmp 数据。...实现效果 最终我们推流到 B 站直播间,在直播间能够实时看到我们手机屏幕上的画面。 ?...基本流程 获取录屏数据 对数据进行 h264 编码 Rtmp 数据包 上传到直播服务器推流地址 获取录屏数据 通过 Intent 获取到 MediaProjectionService,继而获取到 Mediaprojection...使用第三方库 Rtmpdump 来实现推流到直播服务器,由于 Rtmpdump 的代码量不是很多,我们直接拷贝源代码到 Android 的 cpp 文件,如果需要用到 Ffmpeg 不能才用该种调用方式了
android.view.ViewGroup android.widget.FrameLayout android.widget.ScrollView...(译者注:这个函数是2.3 r1 中新增的,API Level 9。...(译者注:这个函数是2.3 r1 中新增的,API Level 9) 参数 scrollX 新的X滚动像素值 scrollY 新的Y滚动像素值 clampedX 当scrollX.../ScrollView2 添加自动滚动和智能焦点切换 [Android学习指南]使用ScrollView实现滚动效果 Android中ScrollView与ListView共用问题的解决方案 示例代码... 下载:Demo_ScrollView.rar 七、译者其他译文 android 中文 api (64) —— Scroller
前言 本章内容是android.widget.VideoView,版本为Android 3.1 r1,翻译来自"唐明",由"cnmahj"审核,再次感谢"唐明"!...欢迎你一起参与Android的中文翻译,联系我over140@gmail.com。 ... MediaController.MediaPlayerControl java.lang.Object android.view.View android.view.SurfaceView... android.widget.VideoView 类概述 (图片转载至这里) 用于播放视频文件。 ...关于MeasureSpec类的额外说明:MeasureSpec是一个android.view.View的内部类。它封装了从父类传送到子类的布局要求信息。
此文上半部分为本人翻译API文档,下半部分转自网友分享资料。...API文档 继承树: java.lang.Object ↳ android.widget.PopupWindow 概述: popupWindow,顾名思义,用作在当前Activity前弹出一个界面...void update(int width, int height) /*都是更新popup window的尺寸和位置,取决于你是在参数里进行改变,还是调用setWidth等方法改变后再更新*/ Android
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com/ Android中文翻译组: http://androidbox.sinaapp.com.../ Bitmap 译者署名:StreamH 译者链接:http://blog.csdn.net/qs_csu 版本:Android 4.0 r1 结构 继承关系 public class Bitmap...extends Object implements Parcelable java.lang.Object android.graphics.Bitmap 内部类 enum Bitmap.CompressFormat...可能是0或PARCELABLE_WRITE_RETURN_VALUE 补充 文章精选 Android Bitmap和Canvas学习笔记 Android画图学习总结(二)——Bitmap Android...Bitmap内存限制 Android Bitmap转字节数组后大小问题 Android bitmap优化
就是因为实现一个功能的速度快呀,比如说客服、聊天、直播等一些功能,用第三方SDK可以最快解决问题,我在实际开发中也对接过很多SDK,不过仔细写过这方便到的博客,前段时间我写了一个关于udesk SDK的文章...java.util.regex.Pattern; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.helper.Logger...; import com.llw.pushdemo.TestActivity; import cn.jpush.android.api.NotificationMessage; import cn.jpush.android.service.JPushMessageReceiver...import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.view.View;...import android.widget.EditText; import cn.jpush.android.api.JPushInterface; public class MainActivity
Code name Version API level (no code name) 1.0 API level 1 (no code name) 1.1 API level 2 Cupcake 1.5...API level 3, NDK 1 Donut 1.6 API level 4, NDK 2 Eclair 2.0 API level 5 Eclair 2.0.1 API level 6 Eclair...2.1 API level 7, NDK 3 Froyo 2.2.x API level 8, NDK 4 Gingerbread 2.3 - 2.3.2 API level 9, NDK 5 Gingerbread...2.3.3 - 2.3.7 API level 10 Honeycomb 3.0 API level 11 Honeycomb 3.1 API level 12, NDK 6 Honeycomb 3.2...API level 15, NDK 8 Jelly Bean 4.1.x API level 16 Jelly Bean 4.2.x API level 17 Jelly Bean 4.3.x API
2、只能获取直播场景下的 YUV 数据,不支持点播场景。
所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成。...Cheerio 从jQuery库中去除了所有 DOM不一致性和浏览器尴尬的部分,揭示了它真正优雅的API。 **ϟ 闪电般的块:**Cheerio 工作在一个非常简单,一致的DOM模型之上。...###API####我们将用到的标记示例 Apple Orange Pear 这是我们将会在所有的API例子中用到的HTML标记 ####Loading首先你需要加载HTML。...xmlMode: false, lowerCaseTags: false } 想看选项清单和它们都效果,看这个和这个 ####Selectors Cheerio的选择器用起来几乎和jQuery一样,所以API...context参数对chreeio没有意义,但是用来维护APi的兼容性。
runningTaskInfos) { cmpNameTemp = (runningTaskInfos.get(0).topActivity).toString(); } 4.判断android...contains(packageName)) { return true; } return false; } 5.获取android
m_nBodySize = bodySize; //持续播放时间 rtmpPacket->m_nTimeStamp = RTMP_GetTime() - this->startTime; //进入直播播放开始时间...m_nBodySize = bodySize; //持续播放时间 rtmpPacket->m_nTimeStamp = RTMP_GetTime() - this->startTime; //进入直播播放开始时间...; rtmpPacket->m_nInfoField2 = this->rtmp->m_stream_id; queue->putRtmpPacket(rtmpPacket); } Android
解决方案 Android 目前支持使用 SurfaceView 做自定义渲染。...1、在布局文件中,使用 SurfaceView 代替原来的 TXCloudVideoView <SurfaceView android:id="@+id/surface_view" android...:layout_width="match_parent" android:layout_height="match_parent"/> 2、在 Java 代码中,初始化SurfaceView surface_view
步骤: 1、右键任意一个项目(选中properties) 2、打开Java Build Path找到Libraries选项然后打开Android2.3.3(可能和你的不一致) 3、依次展开Android2.3.3...,android.jar(注意点击前面的小三角符号) 4、找到Javadoc location,点击edit 5、修改Javadoc location path为sdk/docs/reference(这个前提你的先在...sdk中下载文档,然后点击browse进行选择) 6、使用方法:鼠标放在类名上,然后按F2,点击最后一个图标即可看到 image.png Android Eclipse关联 android API doc...文档 7、有图有真相,效果如下 image.png Android Eclipse关联 android API doc文档
来自 维基百科 以API LEVEL 的更新维度排列 Android 版本 API LEVEL 名称 Linux 内核 首次发布日期 9.0 28 Pie 4.4.107、4.9.84、4.14.42...API LEVEL Android开发者使用的用于开发Android应用程序的SDK 版本,因为Google会不断对外发布新Android版本,版本的修改需反映到开发者的SDK上,为了避免不同版本的做成线上异常...,需要为不同的Android版本设立不同的API LEVEL让开发者做好适配。...如果版本更新不影响SDK的api,可以不升级API LEVEL。 系统名称 区别于Android版本,一般因为小修改或者bugfix而发布的版本不会更新系统名称。...内核版本 Android是基于Linux的,而Linux本身也在不断发展、开发新特性、bugfix,提高稳定性,所以一般Android发布新版本也会迭代内核版本,保持内核的稳定与安全。
前言 本章内容是android.widget.CompoundButton,翻译来自德罗德,再次感谢德罗德 !...期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。...声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com/ Android中文翻译组:http://www.cnblogs.com/over140...android.widget.TextView android.widget.Button android.widget.CompoundButton...结束 Android2.3即将发布,翻译组也将迅速跟进,已经翻译或正在翻译的将保持原有版本,新开始翻译的将直接从新版本开始。
隐藏api和非隐藏api Android P 引入了针对非 SDK 接口(俗称为隐藏API)的使用限制。这是继 Android N上针对 NDK 中私有库的链接限制之后的又一次重大调整。...这对开发者以及用户乃至整个Android生态,当然是一件好事。 但这也同时意味着Android上的各种黑科技有可能会逐渐走向消亡。...公共 api 公共 SDK 接口是在 Android 框架软件包索引 中记录的那些接口 从 Android Pie 开始,对某些隐藏类、方法和字段的访问受到限制在 Pie 之前,通过简单地使用反射来使用这些隐藏的非...这样就可以直接修改hidden_api_exemptions_ 绕过去限制。...所有Java方法类的签名都是以 L 开头,这样就可以直接传个 L进去,所有的隐藏API全部被赦免了! 参考 另一种绕过 Android P以上非公开API限制的办法
本篇介绍一下直播技术中推流与引流的简单实现。 1. 流媒体服务器测试 首先利用快直播 app (其他支持 RTMP 推流与引流的 app 亦可)和 ffplay.exe 对流媒体服务器进行测试。...快直播 app 下载地址: https://apkpure.biz/cn.nodemedia.qlive/%E5%BF%AB%E7%9B%B4%E6%92%AD 快直播的推流界面和引流界面: Windows...推流 本文直播推流步骤: - 使用 AudioRecord 采集音频,使用 Camera API 采集视频数据 - 分别使用 faac 和 xh264 第三方库在 Native 层对音频和视频进行编码...param len */ public native void fireAudio(byte[] data, int len); } 视频采集 视频采集主要基于 Camera 相关 API...直播效果展示 源码地址见 https://github.com/githubhaohao/NDKLive -- END --
Android 11(即API 30:Android R)弃用了Handler默认的无参构造方法 微信图片_20210523142226.png 微信图片_202105231422261.png 只是弃用了无参的构造方法
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android...包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp...(4类), android.net.sip 包 (1接口, 9类, 1异常), android.net.wifi 包 (16类, 1枚举), android.net.wifi.p2p 包 (9接口,...7类), android.net.wifi.p2p.nsd 包 (6类); ContentHandlerFactory : 该接口定义内容处理程序工厂; DatagramSocketImplFactory
领取专属 10元无门槛券
手把手带您无忧上云