首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现内网无纸化会议|智慧教室|实时同屏功能

    背景 本文主要讲的是基于Android平台实现RTMP的技术方案设计,基础架构图如下: 组网注意事项 1. Android端对接 推送分辨率如何设定或缩放? Android设备,特别是高分屏,拿到的视频原始宽高非常大,如果推原始分辨率,编码和上行压力大,所以,一般建议,适当缩放,比如宽高缩放至2/3,缩放一般建议等比例缩放,缩放宽高建议16字节对齐。

    2.1K40发布于 2021-05-12
  • 来自专栏RTSP/RTMP直播相关

    基于智慧教室|无纸化会议的新选择:RTMP解决方案

    基于智慧教室或是会议的技术方案,一般主要是涉及到屏幕采集和推送,整体技术方案这块,一般建议走RTMP,说到这里,好人开发者提到,市面上也有RTSP的技术方案,甚至RTSP组播方案,这块,大牛直播SDK Android平台RTMP屏幕推送端 对应工程:SmartServicePublisherV2 需要注意的事项: 1. Android 8.0及以上版本设备,需要加入省电优化白名单,6.0以上版本,需要动态获取audio权限,具体代码如下: //加入省电优化白名单,以免8.0及以上版本设备后台运行超过一分钟被自动停掉 PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this.getApplicationContext(), android.Manifest.permission.RECORD_AUDIO )) { } else { //提示用户开户权限音频 String[] perms = {"android.permission.RECORD_AUDIO

    2.4K40发布于 2020-01-06
  • 来自专栏RTSP/RTMP直播相关

    面向内网无纸化会议智慧教室实时同屏,组播还是RTMP?

    一、背景 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,我们研发了轻量级RTSP服务开发包。 单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP 但是,组播的劣势在于,高码率的无线网络环境体验很差,也就是说,如果是Windows或者Android平台推送,Android无线PAD播放,真正好用的,还是RTMP推拉流技术解决方案。

    2.1K30发布于 2020-05-26
  • 来自专栏RTMP推送

    Android平台无纸化同屏如何实现实时录像功能

    ​技术背景我们在做无纸化同屏的时候,好多开发者采集到屏幕、麦克风|扬声器数据,除了需要推RTMP出去,或者启动个轻量级RTSP服务,对外提供个拉流的RTSP URL,别的终端过来拉流(小并发场景),还有个技术需求 技术实现实际上,Android同屏,需要录像的话,和采集摄像头数据录像一样,只是数据源不同而已,鉴于不管什么格式的video数据,我们都是投递到模块底层做转换编码,所以本质上没啥差别。 StopRecorder();stream_publisher_.try_release();test_and_disable_post_audio();}};post_or_execute(r);}总结Android 平台无纸化同屏,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。 以上是Android同屏录像设计,感兴趣的开发者,可以跟我单独沟通交流。

    36810编辑于 2024-08-21
  • 来自专栏RTMP推送

    跨平台低延迟的RTMP推流播放在无纸化会议与智慧教室的技术设计和架构实践

    ​ ✳️ 引言:让每一块屏幕“同频”的核心技术无纸化会议与智慧教室,正在从“辅助工具”走向“核心基础设施”,成为政企数字化与教育信息化建设的标配。 以下四类痛点几乎是所有项目都会遇到的: 跨平台一致性难保障 不同终端(Windows 会议一体机、Android 触控大屏、iOS 平板、PC 客户端对推流协议与编码器支持差异大。 关键技术细节在无纸化会议与智慧教室的场景中,低延迟、稳定性、跨平台支持是三大技术核心。 政府机关无纸化会议系统场景需求: 总部与多个分会场之间,需要实时同步 PPT 汇报、领导批注及现场视频。 网络环境包含政务专网与公网混合,延迟要求低于 500ms。 总结与展望在无纸化会议与智慧教室的建设中,视频链路早已从“可有可无的辅助功能”转变为系统核心基础设施。它直接决定了会议能否顺畅进行、课堂能否自然互动、跨地域协作能否高效完成。

    42010编辑于 2025-08-12
  • 来自专栏Android-薛之涛

    Android-.9图详解

    Android设备适配,图片方面很重要的一部分就是.9图的使用了,我们今天就来记录一下。 1. 什么是.9.png图片,和普通png图片的区别? .9.png图片本质上还是png图片,区别是.9.png图比正常的png图片在最外围多了1px的边框,这就允许我们在这个1px的边框上定义图片的可拉伸区域以及图片的内容区域。 这也就是说.9.png的制作实际上就是我们在这1px的边框上按我们的需求,把对应位置设置为黑线,然后系统帮我们自动拉伸了。 2. .9图四个边的黑线(黑点)的意义? 如果是studio直接以.9.png为后缀,双击编辑进入图片界面,选择左下角的9-patch即可开始制,或者图片右击在列表选则Create 9-Patch file即可。 3.如果发现你的点9图片太小或者极小,可以拖动图片下方的zoom放大图片,然后就可以精确操作了。 .9图各边框含义 ? image.png 处理为.9图之后 ? .9图显示 完毕!

    3.9K20发布于 2018-10-09
  • 来自专栏三流程序员的挣扎

    Android 动画总结(9) - 过渡动画

    > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/transition_root <ImageView android:layout_width="300dp" android:layout_height="150dp" android android:textColor="@android:color/white" android:textSize="24sp" android:gravity="center > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/transition_root > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com

    3K11发布于 2018-09-11
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现无纸化同屏并推送RTMP或轻量级RTSP服务(毫秒级延迟)

    ​技术背景在写这篇文章之前,实际上几年之前,我们就有非常稳定的无纸化同屏的模块,本文借demo更新,算是做个新的总结,废话不多说,先看图,本文以Android平台屏幕实时采集推送,Windows播放为例 我们在做无纸化同屏的时候,问的最多的是,能不能不要自建服务,直接主讲人或教师端,直接启动轻量级RTSP服务,其他终端拉流,如果是小并发,比如5人内的小范围的同屏,Windows平台走轻量级RTSP无可厚非 ,如果是30-60甚至100人的会议室,建议走RTMP。 Android横竖屏自动适配Android平台,如果是pad采集,基本就是横屏采集,如果手机端,需要确保横竖屏模式下都可以正常采集。4. Log.i(TAG, "GetRtspSessionNumbers: " + session_numbers); } return session_numbers; }9.

    85900编辑于 2024-06-18
  • 来自专栏向治洪

    android之.9.png详解

    .9.PNG是安卓开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在android 环境下的自适应展示。 什么叫.9.PNG呢,这是安卓开发里面的一种特殊的图片 这种格式的图片在android 环境下具有自适应调节大小的能力。 右侧和下方的黑线交叉的部分即内容显示区域(如做button背景图时,button上文字的显示区域) 用它可以实现部分拉伸,从而实现图片在安卓系统上的完美应用 拆过系统framework-res.apk包的机油们细心点看,里面有许多有.9.

    1.6K60发布于 2018-01-30
  • 来自专栏潇涧技术专栏

    Art of Android Development Reading Notes 9

    Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程 第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest 从Android 3.1开始,处于停止状态的应用无法接受到开机广播。 (3)ContentProvider的android:multiprocess属性决定它是否是单实例,默认值是false,也就是默认是单实例。 其他学习资料 1.Android开发艺术探索读书笔记(三) OK,本章结束,谢谢阅读。

    53620发布于 2018-08-01
  • 来自专栏Android 开发者

    更强续航,尽在 Android 9 Pie

    作者: Madan Ankapura, Android 产品经理 ? 本文为 Android 电量管理系列连载的第一篇,希望开发者能从阅读过程中收获设备续航方面的战略洞见及实践指南。 接下来,让我们一起回顾一下 Android 电量管理特性的演变史,看看各个版本的 Android 究竟是如何帮助设备提升续航表现的: 从 Android 5.0 Lollipop 开始,开发者可以利用 Android 9 Pie 则基于以下三项原则进一步强化了设备的电量管理能力: 1.帮助开发者构建精彩应用 2.提升应用功耗效率 3.为用户省去自行设置应用配置的步骤 这意味着 OS 操作系统需要变得更加智能 为了达到这些目的,Android 引入了应用待机分类和后台限制这两项特性,同时优化了原有的省电助手功能。建议开发者在已启用以上特性的 Android 9 Pie 设备上对应用进行相关测试。 您可以从下图更为直观地了解 Android 给任务安排运行时间的具体流程: ?

    1.7K40发布于 2018-09-30
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现系统内录(捕获播放的音频)并推送RTMP服务技术方案探究

    ​ 几年来,我们在做无纸化同屏或在线教育相关场景的时候,总是被一件事情困扰:如何实现Android平台的系统内录,并推送到其他播放端,常用的场景比如做无纸化会议或教育的时候,主讲人或老师需要放一个视频, 一般来说,做无纸化会议或教育同屏的公司,如果硬件是厂商定制的,可以跟厂商提出来,修改ROM,得到内录audio权限和数据。为此,我们专门设计了个接口,便于有这个权限的厂商使用。 我们考虑到,在做无纸化同屏或者教育投屏的时候,一般来说,主要还是采集麦克风音频为主,中间如果有视频播放或者类似需求的时候,我们把内录audio的打开即可(也可以做混音模式,或者推送过程中,实时静音麦克风或扬声器数据源 ,方案2大多时候,非定制设备,很难满足权限要求,方案3对Android系统版本要求比较高。 通过测试,方案3除了对Android版本要求比较高外,体验式最好的,感兴趣的开发者,可以尝试看看,如果是特定场景下,本身选用的设备,Android的版本就比较高,又有内录audio需求的话,无疑是非常不错的选择

    3.1K40编辑于 2022-11-10
  • 来自专栏腾讯会议

    腾讯会议API MRA instanceid变更为9的策略更新通知

    本次更新点:更新前:MRA instanceid为0更新后:MRA instanceid为9,部分存量私有化客户会使用1,此时需要根据instanceid=1&&pstn_number来判断MRA终端类型预计更新时间 :2022年6月8日影响范围:1、Rest API 获取参会成员列表 接口2、Rest API 查询实时会中成员列表 接口3、Rest API 会议控制管理(会中管理) 相关接口4、Webhook事件消息修改方法 :1、对instanceid枚举值增加9的定义,表示MRA终端类型;更新后识别MRA终端类型的条件为:instanceid=9 or (instanceid=1&&pstn_number)。 2、调用会议控制管理(会中管理)相关接口时,传入的instanceid需要从获取参会成员列表接口、查询实时会中成员列表接口或者Webhook事件消息中获取,不能随意设置。

    1.3K90编辑于 2022-07-01
  • 来自专栏码客

    Android 适配18:9全面屏适配

    前言 2017年是全面屏爆发的大热潮,18:9屏幕的相拥而来,在使用18:9等非传统16:9的手机之后,部分手机应用出现了上下黑边。 解决方案 两种方案用其中任意一个都行 方案1 设置 Android:resizeableActivity compileSdkVersion 需要设置为 24以上,不然报错 resizeableActivity android:resizeableActivity="true"> 这种方案会开启Android N分屏功能,所以需要适配下每个 Activity 自适应高度. 方案2 设置 Meta-Data:android.Max_aspect 设置最大高宽比为 2.1 <application> <meta-data android :name="android.max_aspect" android:value="2.1" /> </application> 目前我主要用到第二种方式来适配18:9的全面屏

    1.3K20发布于 2019-10-22
  • 来自专栏Android相关

    Gradle For Android(9)--自定义构建

    Android Plugin在buildType中有一个Boolean的属性名为minifyEnabled,可以设置成true启用Proguard: android { buildTypes proguard-android.txt文件作为默认的ProGuard配置文件。 而该文件就在Android SDK的tools/proguard目录下。 正因为Resource Shrinking工作了,Android Build Tools不能指出哪些资源是无用的,直到这些代码引用的资源全部被移除。 Jack:Java Android Compile Kit,它是Android Build Toolchain中的一个新工具。她可以编译Java代码直接到Dex格式。

    1.1K10发布于 2018-10-24
  • 来自专栏mukekeheart的iOS之旅

    Android基础总结(9)——网络技术

    6 7 <WebView 8 android:id="@+id/webView" 9 android:layout_width="match_parent savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.web_view); 9 6 7 <Button 8 android:id="@+id/button" 9 android:layout_width="wrap_content" EditText responseText ; 6 7 private Handler handler = new Handler(){ 8 @Override 9 Message msg = new Message() ; 7 msg.what = SHOW_RESPONSE ; 8 msg.obj = response.toString() ; 9

    1K50发布于 2018-02-27
  • 来自专栏程序你好

    Android 9 Pie新版本入门

    Android 9的昵称是“Pie”。这并不是最受欢迎的Android名称,但它最后将会变成一个最受欢迎的名称。说到底,真正重要的是“Pie”的新功能——而且有很多这样的功能。 不过,让我们来讨论一下升级到Android 9 Pie后将获得的特性。更新新版本最明显的标志是新的系统导航条,它取代了过去几次迭代中为Android用户提供良好服务的标准三图标导航条。 但这已经足够让人抱怨了,因为实际上是所有的小事情让Android 9派变得更好。有一些东西像自适应电池管理,通过学习你使用最多的应用程序,使你的电池寿命更长。 这很好(尽管我不确定它对我的日常电池寿命有多大影响),但让我真正感到高兴的新功能是一个新的弹出窗口,告诉你你可能还有20%的电池,而且这种充电应该持续到晚上9点20分。这实际上是有用的。 或许谷歌还没有准备好——或许它的合作伙伴还没有构建足够的片段,但无论如何,我们都不会在Android Pie中看到这个功能,估计要等到今年晚些时候。 这是安卓9 Pie。

    1.5K30发布于 2018-08-21
  • 来自专栏Linux驱动

    9.Android-读写SD卡案例

    4.写activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns " android:text="SD卡读写内容:" /> <EditText android:id="@+id/et_content" android " android:layout_width="wrap_content" android:layout_height="wrap_content" android ; import android.content.Context; import android.os.Environment; import android.text.format.Formatter android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button

    2.1K10发布于 2020-02-12
  • 来自专栏来自GitOPEN的技术文摘

    《Monkey Android》第9课Toast土司

    将上述代码直接放到Activity的onCreate方法中,当Activity启动后,即可显示Toast。关于Activity以及它的方法(生命周期函数),我们今后会专门讲解。

    47440发布于 2019-01-29
  • 来自专栏风吹杨柳

    Android调试bug-2015-9-24

    09-24 12:56:16.471: E/AndroidRuntime(10696): at android.app.ContextImpl.startActivity(ContextImpl.java :1205) 09-24 12:56:16.471: E/AndroidRuntime(10696): at android.content.ContextWrapper.startActivity( (View.java:4632) 09-24 12:56:16.471: E/AndroidRuntime(10696): at android.view.View$PerformClick.run( :103) 09-24 12:56:16.471: E/AndroidRuntime(10696): at android.os.Looper.loop(Looper.java:193) 09-24 12:56:16.471: E/AndroidRuntime(10696): at android.app.ActivityThread.main(ActivityThread.java:5348)

    50410发布于 2019-07-08
领券