当前位置: 首页 > news >正文

网站建设改版公司/上海seo公司哪家好

网站建设改版公司,上海seo公司哪家好,网站空间是啥,建设学分银行网站策划书Android 5开始支持屏幕采集, Android 10支持音频播放采集&#xff0c;不过Android 14用前台服务做屏幕录制时要增加一些处理. 1. app manifest 需要增加: <manifest><uses-permission android:name"android.permission.FOREGROUND_SERVICE" /><uses…

  Android 5开始支持屏幕采集,  Android 10支持音频播放采集,不过Android 14用前台服务做屏幕录制时要增加一些处理.

  1. app manifest 需要增加:

<manifest><uses-permission android:name="android.permission.FOREGROUND_SERVICE" /><uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" /><application android:resizeableActivity="true"><serviceandroid:name="xxx.yyy.MyTestService"android:foregroundServiceType="mediaProjection"android:exported="false"></service></application>
</manifest>

   2. 需要用户先授权投影权限(投影 token), 再在前台服务中调用:

startForeground(id, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION);

  3. 在前台服务中调用MediaProjectionManager.getMediaProjection之前, 需要先调用上面的代码。

  4. 用户授权的投影token只能使用一次,就是说只能拿来调用MediaProjectionManager.getMediaProjection一次,也只能调用MediaProjection.createVirtualDisplay。 

  音频播放采集从 Android 10就有了,需要 RECORD_AUDIO 权限和MediaProjection对象。音频播放采集是依赖屏幕投影的,如果屏幕投影关闭了,音频播放也就采不到了。

  具体实现时用到的Android接口不多,但遇到各种问题就很磨人,为方便项目使用,做了封装,支持屏幕采集、音频播放和麦克风采集,同时能输出RTMP流和RTSP流,也支持写录像文件(MP4文件), 接口如下:

/*
* Copyright (C) 1130758427@qq.com. All rights reserved. 
* 问题沟通微信: ldxevt
*/public interface NTStreamMediaEngine {void register_callback(Callback callback);void unregister_callback(Callback callback);void set_resolution_level(int level);int get_resolution_level();/** 启动媒体投影*/boolean start_video_capture(int token_code, android.content.Intent token_data);boolean is_video_capture_running();void stop_video_capture();/** 启动麦克风*/boolean start_audio_record(int sample_rate, int channels);boolean is_audio_record_running();void stop_audio_record();/**  Android 10及以上支持, Android10以下设备调用直接返回false*  需要有RECORD_AUDIO权限*  要开启媒体投影*/boolean start_audio_playback_capture(int sample_rate, int channels);boolean is_audio_playback_capture_running();void stop_audio_playback_capture();/** 输出的音频类型*  0: 不输出音频*  1: 输出麦克风*  2: 输出audio playback(Android 10及以上支持)*/boolean set_audio_output_type(int type);int get_audio_output_type();void set_fps(int fps);void set_gop(int gop);boolean set_video_encoder_type(int video_encoder_type);int get_video_encoder_type();/** 推送RTMP*/boolean start_rtmp_stream(String url);boolean is_rtmp_stream_running();String get_rtmp_stream_url();void stop_rtmp_stream();/** 启动RTSP Server, 需要设置端口,用户名和密码可选*/boolean start_rtsp_server(int port, String user_name, String password);boolean is_rtsp_server_running();void stop_rtsp_server();/** 发布RTSP流*/boolean start_rtsp_stream(String stream_name);boolean is_rtsp_stream_running();String get_rtsp_stream_url();void stop_rtsp_stream();/** 启动本地录像*/boolean start_stream_record(String record_directory, int file_max_size);boolean is_stream_recording();void stop_stream_record();boolean is_stream_running();interface Callback {void on_nt_video_capture_stop();void on_nt_rtsp_stream_url(String url);}
}

    安卓Demo测试界面:

  Windows上播放效果截图:

  我测试时先开启安卓屏幕录制Demo, 在电脑上开个计数器,再打开安卓相机拍摄屏幕上的计数器,录制程序采集安卓相机预览界面,并输出RTMP流和RTSP流,  电脑上播放这两个流并截图, 就可以看延时了,测下来延时很低(安卓后置摄像头拍摄到预览也有延时)。

相关文章:

Android14 屏幕录制(屏幕投影)和音频播放采集

Android 5开始支持屏幕采集, Android 10支持音频播放采集&#xff0c;不过Android 14用前台服务做屏幕录制时要增加一些处理. 1. app manifest 需要增加: <manifest><uses-permission android:name"android.permission.FOREGROUND_SERVICE" /><uses…...

一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶

一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶 文章目录 前言一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶 一、HKELM模型1. 极限学习机&#xff08;ELM&#xff0…...

redis面试(十五)公平锁队列重排

队列重拍 先说一下当前的加锁状态 anyLock由客户端A持有队列中是客户端B、客户端C并且客户端B现在是排在头部 那么队列重拍就是队列中某个客户端长时间没有重新申请加锁&#xff0c;没有刷新分数&#xff0c;就会被队列中挤掉。 假设这个长时间没有加锁的客户端是B。 总结 …...

python 基础语法os模块

一、os模块 待总结 二、os.path模块 1.abspath()方法--获取绝对路径 abspathO)方法用于返回文件或者目录的绝对路径。 语法格式如下: os .path.abspath(path) 参数说明: path:表示要获取绝对路径的相对路径&#xff0c;可以是文件也可以是目录。 返回值:返回获取到的绝…...

图论------迪杰斯特拉(Dijkstra)算法求单源最短路径。

编程要求 在图的应用中&#xff0c;有一个很重要的需求&#xff1a;我们需要知道从某一个点开始&#xff0c;到其他所有点的最短路径。这其中&#xff0c;Dijkstra 算法是典型的最短路径算法。 本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码&#xff0c;实现 …...

河工院首届工业设计大赛程序组(挑战赛)题解

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 寻找ACMer 思想&#xff1a; 签到题按照题意遍历字符串&#xff0c;不断向后寻找包含 ACMer 完整字符串的数量即可 std标程&#xff1a; #include <iostream> #include <cstring> #include …...

文件上传漏洞(二,靶场搭建及漏洞利用)

前言&#xff1a; 本文基于github上的upload-labs&#xff0c;PHP study以及bp抓包软件进行操作。 一&#xff0c;靶场搭建。 靶场链接 1&#xff0c;下载zip文件到PHP study下的www文件夹内&#xff0c;并解压。 2&#xff0c;创建网站。 此处php版本应选择较老版本&…...

大厂面试题分享第二期

大厂面试题分享第二期 如果执行了一条命令&#xff0c;"select count(*)from…"&#xff0c;使用哪个引擎更快&#xff0c;为什么&#xff1f;垃圾回收器 CMS 和 G1的区别介绍一下CMS和G1CMS&#xff08;并发&#xff09;垃圾收集器G1垃圾回收器 HTTPS和HTTP的区别主…...

zabbix安装

a.安装 Zabbix 仓库 # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # yum clean all b. 安装 Zabbix server、前端、agent # yum install zabbix-server-mysql zabbix-agent c. 安装Zabbix前端 启用红帽软件集合 # …...

SpringBoot集成日志框架

SpringBoot集成日志框架 Java生态体系日志框架介绍 简介 在Java生态体系中&#xff0c;围绕着日志&#xff0c;有很多成熟的解决方案。关于日志输出&#xff0c;主要有两类工具。 一类是日志框架&#xff08;Log4j、Logback&#xff09;&#xff0c;主要用来进行日志的输出的…...

CSS笔记总结(Xmind格式):第三天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; css知识&#xff1a; 边框线&#xff1a; 1.border-width:边框的粗细 2.border-style:边框线的样式(solid实线,double双实线,dotted点线&#xff0c;dashed虚线) 3.border-color:边框线的颜色 4.简写形式&a…...

WordPress原创插件:Keyword-ranking-seo 1.0 关键词排名插件 有利于seo

WordPress原创插件&#xff1a;Keyword-ranking-seo 1.0 关键词排名插件 有利于seo 当用户访问网站时&#xff0c;该链接会随机选择一个关键词&#xff0c;并使用选定的搜索引擎进行搜索。 插件下载链接 https://download.csdn.net/download/huayula/89632792...

Docker Swarm 管理

Docker Swarm 是 Docker 提供的一种用于管理容器集群的工具。一、Docker Swarm 的主要特点包括&#xff1a; 高可用性&#xff1a;可以自动检测和恢复故障节点&#xff0c;确保服务的持续可用性。 例如&#xff0c;当某个工作节点出现故障时&#xff0c;Swarm 会将其上的任务重…...

跨平台、多格式、云同步,Koodo Reader背后的技术亮点

前言 对于像我这样的书虫来说&#xff0c;能够找到一个既方便又舒适的阅读环境&#xff0c;简直就是人生中的一大幸事&#xff1b;今天&#xff0c;就让小江湖我带你走进一个不一样的阅读世界——Koodo Reade&#xff01; 无论是在喧嚣的都市&#xff0c;还是在宁静的乡村&a…...

【Story】如何高效记录并整理编程学习笔记?

目录 一、为何笔记在编程学习中如此重要&#xff1f;1.1 知识的捕捉1.2 理解和消化1.3 知识的复习1.4 知识的分享 二、建立高效的笔记系统2.1 确定笔记的目标2.2 选择合适的工具2.3 笔记的结构化2.4 记录有效的内容2.5 定期回顾和更新 三、保持笔记条理性的技巧3.1 使用一致的格…...

jenkins 安装以及自动构建maven项目并且运行

在这里找到你对应jdk的版本的jenkins包 War Jenkins Packages 我这里用的使java8,所以下载 https://mirrors.jenkins.io/war-stable/2.60.1/jenkins.war 然后jenkins可以安装到centos系统 在本地windows系统运行命令行 scp C:\Users\98090\Downloads\jenkins.war root@192…...

Java虚拟机:虚拟机介绍

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 033 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…...

硬件面试经典 100 题(31~40 题)CRE4

31、多级放大电路的级间耦合方式有哪几种&#xff1f;哪种耦合方式的电路零点偏移最严重&#xff1f;哪种耦合方式可以实现阻抗变换&#xff1f; 有三种耦合方式&#xff1a;直接耦合、阻容耦合、变压器耦合。直接耦合的电路零点漂移最严重&#xff0c;变压器耦合的电路可以实现…...

ReactNative笔记(自用)

环境 ios更换gem镜像源&#xff1a; 查看当前源: gem sources -l 移除默认源: gem sources --remove https://rubygems.org/。添加新的源: 添加 Ruby China 的镜像源&#xff1a; gem source -a https://gems.ruby-china.com/或者添加其他镜像源。 清华大学的gem源: htt…...

嵌入式八股-面试30题(20240812)

TCP和UDP的区别是什么? **TCP&#xff08;Transmission Control Protocol&#xff09;**是面向连接的协议&#xff0c;提供可靠的、顺序的数据传输。它通过三次握手建立连接&#xff0c;并在数据传输过程中使用确认和重传机制来确保数据的正确性。TCP还支持流量控制和拥塞控制…...

单一职责原则(SRP)

目录 1、定义 2、优点 3、原则的重要性 4、 示例 5、注意事项 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09;是面向对象设计中的一项重要原则&#xff0c;属于 SOLID 原则之一。它的核心思想是&#xff1a;一个类应该只有一个引起它变化的原因&am…...

骨传导耳机怎么选?分享五款资深用户都说好的骨传导耳机!

在追求健康生活的道路上&#xff0c;运动健身已成为一种时尚潮流&#xff0c;而音乐则是这场潮流中不可或缺的催化剂。然而&#xff0c;传统耳机在运动场景下的局限性日益凸显&#xff0c;难以满足运动者对自由与舒适的双重追求。正是基于这样的市场需求&#xff0c;骨传导耳机…...

【计算机网络——分组延时,丢失,吞吐量】

处理延时&#xff1a;1检查分组首部信息&#xff0c;决定将该分组导向何处所需时间。2检查比特级别的差错所需时间&#xff1a;分析这个分组是否出错&#xff0c;目标IP地址字段提取出来&#xff0c;查路由表……。 传播延时和传输延时&#xff1a;传输延时就是分组到链路所需…...

使用1panel 申请证书配置雷池站点

1.创建测试站点 2.使用1panel申请测试站点的自签名证书 ps&#xff1a;雷池支持自签的证书 关于如果选择网站的SSL证书 百度搜索 看起来是证书的问题 调整了参数重新申请一个证书上传 注意&#xff0c;如果文件上传错了&#xff0c;雷池会报错&#xff0c;如下图 再次访问配…...

4章7节:用R做数据重塑,数据去重和数据的匹配

在数据科学的分析流程中&#xff0c;数据重塑是一项非常重要的操作。数据的重塑通常指将数据从一种形式转换为另一种形式&#xff0c;以满足后续分析的需求。R语言提供了丰富的工具和函数来帮助用户高效地进行数据重塑操作。本文中&#xff0c;我们将深入探讨数据重塑的概念及其…...

大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称

文章目录 累加刚好超过各省GDP40%的地市名称 一、题目 二、分析 三、SQL实战 四、样例数据参考 累加刚好超过各省GDP40%的地市名称 一、题目 现有各省地级市的gdp数据,求从高到低累加刚好超过各省GDP40%的地市名称&#xff0c;临界地市也需要。 例如&#xff1a; 浙江省…...

建议收藏!这4款设计师常用的素材管理软件,助你工作效率翻倍!

嘿&#xff0c;设计师们&#xff01;你是否还在为那一堆堆散乱的素材头疼&#xff1f;每次灵感来袭&#xff0c;却要花费大量时间在层层文件夹中苦苦搜寻&#xff1f;别急&#xff0c;今天我就来给大家推荐4款超给力的素材管理软件&#xff0c;它们不仅能帮你轻松整理素材库&am…...

用于NLP领域的排序模型最佳实践

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;用于排序任务的模型通常是指那些能够对文本进行排序、比较或评估其相关性的模型。这些模型可以应用于诸如文档排序、句子排序、问答系统中的答案排序等多种场景。在当前的研究和发展中&#xff0c;基于深度学习的方法…...

域名未备案的支付平台遭遇大攻击怎么办

域名未备案的支付平台遭遇大攻击怎么办&#xff1f;在当今数字化时代&#xff0c;支付平台的安全与稳定性是保障业务连续性和用户信任的关键。然而&#xff0c;对于因域名未备案而面临法律风险的支付平台来说&#xff0c;其安全挑战更为严峻。当这类平台遭遇大规模的网络攻击&a…...

【NI-DAQmx入门】LabVIEW数据采集基础应用程序框架

对于可管理规模的 LabVIEW 程序&#xff0c;分析现有程序或设计新程序的方法通常是从整体到具体&#xff0c;即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段&#xff0c;开发人员首先将程序垂直划分为几个层级。从最顶层开始&#xff0c;他们…...