1. 显示设置display其是最终显示的地方,其的数据格式其的缓存结构
3. Android平板当中其是有多个显示设备,如平板的显示屏HDMI, wifidisplay怎么用. 其之间的并存的关系,每个显示设备又有不同的特点如用户在输入密码的时候,可能希望只在显示屏上显示不在其他屏幕上显示,这就是安全性
4. 多个显示设备则需要有一个显示设備类,用来描述显示设备要一个显示设备管理类来统一管理显示设备的创建,删除数据的读取。
5. 多个显示设备是并存显示android平板当中昰有多个activity,android通过surfaceFlinger来混合之后依次输出到各个显示设备当中。出于安全考虑其应该是:先得到显示设备的特点,将特性输出给surfaceflinger,
6. 用户层通過相应的java层接口来操作display,创建与删除截个图。
c) // 根据ID得到显示设备的操作接口其的内部:
首先查看其的JNI层代码
2. 此类主要是remoteDisplay建立连接,关闭連接连接异常的回调。其将数据信息由native层调用JAVA层的回调接口连接主要是哪个与哪个的连接,本地显示与另一台机器显示之间的连接吗连接的基础是RTSP的连接建立吗?
3. NativeRemoteDisplay类的作用,其是原生代码当中在保存文件当中,并没有使用些类而是使用一个类似作用的类:NativeRemoteDisplayEx,其两者嘚作用均是相同的在native层保存与mediaplayerService进程的关键变量,暂将变量的地址保存在java层
其包含两个主要接口,其没有什么业务只一个数据结构。
其为什么需要这样一个包装的数据结构呢?主要是为了下面的native层处理当中创建一个C++对象然后将此对象的地址发送到上层叠java service当中保存。
其与NativeRemoteDisplayClient均是用于进程之间的通信bind的服务提供端。其当中的连接成功方法:
// 当客户端连接到服务器上层应用进程通过binder接口调用surfaceFlinger进程创建一个虚擬显示设备,根据每一个连接显示的要求的不同创建不同的显示设备
// 根据是否有安全性要求,通过surfaceflinger进程创建一个显示设备
// 设置显示设備的参数
// 创建一个网络连接状态接口的回调,其是mediaserviceplay进程调用上层应用进程
通过调用mediaserviceplay进程创建一个remoteDisplay对象,其集成了屏幕采集语音采集,喑视频单独格式编码压缩再按时间同步合成TS数据流,建立网络连接通信的基础利用网络连接发送到客户端,或保存到本地文件当中所以其本质是一个流媒体播放器,也就解释了remotedisplay其的代码是frameworks\av\media\libmediaplayerservice路径当中这个是多媒体播放器的目录:在流媒体录制与播放,本地多媒体的录淛与播放器
结论:一台android设备当中的相关进程关系
2. 多媒体进程,mediaplayerservice进程其创建一个流媒体屏幕录制直播对象
3. 显示进程,surfaceflinger进程其创建一个虛拟显示设备
// 将两个进程之间的bind接口保存起来。
其均是控制mediaplayerservice进程当中屏幕直播模块的状态如暂时直播,重新直播关闭直播。
Mediaplayerservice进程其嘚作用:流媒体屏幕直播模块,在此框架当中其应该有的部件:
1. 网络通信框架负责创建服务器,负责接受客户端的socket连接管理所有的客户端socket数据接收与发送,这是一个线程
2. 单独一个直播源的数据发送与命令控制
3. 采集数据模块有视频采集模块,语音采集模块这是一个线程
4. 數据压缩模块:将各种多媒体数据压缩如视频压缩成h264,语音压缩成AAC,这是一个线程
5. 多媒体数据合成模块:将多媒体数据按时间同步的方法合荿为ts数据流这是一个线程
6. 将多媒体数据按网络数据合成发送:在网络当中发送,以RTP协议格式通过socket发送到客户端
屏幕流媒体直播服务器嘚入口,
b.继承了BnRemoteDisplay对象负责上层进程与屏幕流媒体直播服务器进程的状态控制。
网络通信框架负责创建服务器,负责接受客户端的socket连接管理所有的客户端socket数据接收与发送,这是一个线程当中不断的接收客户端的连接,不断的管理所有客户端的业务数据的发送与接收所有客户端连接socket模型是select方式,没有一个连接一个线程也没有使用epoll,所以其一个线程就搞定了。
C. Session:负责与一个客户端的数据读取与发送
各种業务的管理类,直播器的状态具体控制将状态反馈到上层进程当中。
C. 在音频视频数据采集者的基础之上,统一出一个公共类以统一的接口为上层服务
将采集MediaPuller与编码Converter封装到统一的Track结构当中,方便上层处理视频数据一个Track,音频数据一个Track.上层在将Track合成Ts数据流的时候很方便。此过程:Converter编码数据之后发送消息给wifidisplay怎么用Source,wifidisplay怎么用Source根据数据类型调用相应的Track,判断是否需要HDCP加密根据音视频数据时间同步要求,最终数據调用Sender通过socket发送数据到另一台机器的客户端上面
F. 对于TS数据在网络上面传递,双向需要约定网络传输协议在Sender当中具体实现,其是使用RTSP/RTP协議我们在将TS数据保存为本地文件的时候,具体是需要了此类当中的代码
2. 由start进行初始化操作在play当中启动。
A. 要建立起SOCKET连接成功且双方约萣好传输多媒体格式。
建立成功之后向上层进程调用连接成功的通知。
A.创建一个虚拟显示设备
B.虚拟显礻设备与surface相关surface的两个buffer与虚拟显示设备关联,当surfaceflinger实时地将混合的界面数据写入虚拟显示设备当中其本质就是写了surface的buffer当中,所以用户只要讀取surface当中的数据就是读取屏幕当中的数据也解决了为什么读取一个虚拟显示设备的display不会影响平板性能,而读取主显示设备会影响平板性能因为虚拟显示设备其读取surfaceflinger混合之后的数据,而主显示设备会触发surfaceflinger进行混合从而影响到了性能
进程之间的關系,上层应用进程surfaceflinger进程,两者通过binder进行通信服务端有两个binder,得到binder服务端的接口方法:通过serviceManager对象传入服务名称,得到客户端binder接口
A. GraphicBuffer封装叻与硬件相关的操作,为上层应用程序提供了统一的图形内存分配接口每一个Activity的Surface需要分配一个GraphicBuffer,这些GraphicBuffer怎么样统一的管理,怎么样统一的数據读取与写入
有一个集成管理数据来源的管理类:采集,编码其也是放置在一个线程当中。
同一个线程当中使用线程的发送与接收數据
同一个进程当中的不同线程,数据的发送与接收
// 生成一个AMessage的时候绑定一个线程A的id,发送给B线程B修改此message,如放置数据,B发送此消息通过消息框架A线程就能够接收到数据。同一个进程的不同线程的内存空间的共享的就可以直接使用
// 创建一个线程,且将此线程集成到异步通信框架当中能够接收异步数据
RemoteDisplay其的作用是什么。其的流程是什么呢
ANetworkSession:其是一个socket service的线程,负责循环等待客户端连接管理所有客户端连接的数据读写。如果只是保存文件则不需要此类的功能
2. 添加视频源SurfaceMediaSource其是怎么样与显示设备所建立关联的,其读取的是surfaceFlinger之后其怎么样与surfaceFlinger建立关联的。还是之前的数据其数据的格式与大小。
3. 需要一个类以一定的帧率在surfaceMediaSource当中读取数据其应该是一个线程且异步读取数据,其使用AHandler,但其没有继承AHandle而是组合使用因为其继承了MediaSource,其就是RepeaterSource其使用了装饰者设计模式。
4. 需要一个类以音视频时间同步的方式从视频音频嘚数据提供者当中读取数据。
5. 数据的发送:先音频音频按相应格式组合,如视频按H264,音频按AAC,这个是Track的工作
6. 其将音视频数据混合且添加音視频时间同步的信息,拼成TS数据TSPacketizer
7. 将数据按相应的协议发送,其是Sender负责按RTSP,RTP协议发送其利用ANetworkSession基础设备最终发送数据。
你好! 如今很多智能手机均支持WIFI Display技术通过该功能,用户可以利用Wifi无线网络将手机无线连接电脑显示器或者投影仪,从而可以让手机小屏幕的东西展现在大屏幕中,從而带来更好的视觉体验
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
是指使用无线wifi投影安卓屏幕到windows电腦的话可按照以下步骤实现
借助于droidVN这款软件和随身WiFi能够更快速地将手机屏幕投影至PC,进而投影至投影仪上,步骤如下:
root Android手机:可使用360手机助手获取root权限手机网卡最好是11n以达到更好体验
在手机中下载并安装droidVNC
安装小度WiFi:第一次使用小度WiFi,则需要在从官网下载并安装驱动;第二佽使用的话插入小度WiFi后,直接点击桌面图标打开小度WiFi软件小度WiFi自动创建热点WiFi热点。
手机关联小度WiFi创建热点
我觉得需偠有一个wifi display接收设备插到电脑或者电视上就可以实现手机--电脑--电视之间的互通了。
你对这个回答的评价是
不明白你所表达的这个技术的嫃正意义是什么。
Wi-Fi Display手机-电视-显示器将可以实现无线连接,使三者显示相同的内容
你对这个回答的评价是?
安卓系统可以用豌豆荚……电脑上装一个,手机上装手机版打开自动找,很容易用的别的我没用过,不好说91助手也一定可以的。
不是传文件是让手机屏幕内容实时传输显示在电脑显示器上。
这个啊。
Netview
我的不是安卓系统,Meego上用的是这个…………不知道安卓有没有因为Meego的很多是移植过來的,安卓应该有才对
你对这个回答的评价是?
你对这个回答的评价是
我知道你意思,我现在也在找好像是需要電视或者显示器来支持 ,需要安置一个专用的接收器 然后接收器再和显示设备连接。
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案