Android Graphics 多屏同显/异显 - C++示例程序(升级版)

本文介绍了如何基于Android源码开发一个多屏显示互动程序的升级版本,增加了视频播放功能。详细步骤包括源码下载、编译、模拟多屏幕环境以及使用方法,如画面切换、移动和同显操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“ 为了更生动地展现Android多屏同显/异显的功能,基于前面的多屏显示互动程序做一个升级版,增加播放视频功能。

01

多屏显示互动程序概况

源码下载

请查看文章末尾源码下载方式

图片

源码编译

本demo程序是基于Android S源码环境开发的,所以需要放到Android S源码下编译。

将上一步中下载的源码放到Android源码的合适目录下,比如我放到了android/device/multi-display-demo-pro目录下,然后执行mm进行编译,得到可执行档 MultiDisplayDemoPro

源码运行

运行前,需要先有一个多屏幕的环境,我们采用前面文章提到的方式,搭建模拟环境:2块1080x1920的物理屏幕

Android Graphics 显示系统 - 如何模拟多(物理)显示屏?

启动模拟环境时,设定display参数,如下

--display0=width=1080,height=1920 --display1=width=1080,height=1920

注意:

一定要在开发者选项里打开Force desktop mode,我们需要有一个多屏异显的系统环境!!

图片

将可执行档MultiDisplayDemoPro放到目标测试平台/system/bin下(比如:adb push MultiDisplayDemoPro /system/bin/)

查看使用说明

vsoc_x86_64:/ # MultiDisplayDemoPro -h
usage:  MultiDisplayDemoPro [options]
        ------------------------------------------------------------------------------------------------
        [-h] help
        [-l] list displays
        [-d] layer stack(In case of multi-display, show surface on the specified displays)
        [-f] the path of video file to playback

        When demo is running, you can input a char to control surface
                n: move surface to other display with no animation
                m: move surface to other display with animation
                s: show surface on diffrent displays
        ------------------------------------------------------------------------------------------------

和标准版demo相比,多了一个选项[-f],用来指定要播放的视频路径。

可以去抖音上下载一个视频,然后push到设备的/sdcard/Movies/目录下。

02

多屏显示互动程序功能说明

获取当前设备的Displays信息

# adb shell MultiDisplayDemoPro -l

Display Devices: size=2
        #0 display layerStack=0 activeMode={ 1080x1920@60.00fps }
        #1 display layerStack=2 activeMode={ 1080x1920@60.00fps }

可以看到当前设备有几块屏幕,每个屏幕当前的分辨率、刷新率,还有一个关键的信息layerStack

画面显示到指定屏幕

-f 选项,后面指定要播放的视频的路径;
-d 选项,后面加指定屏幕的layerStack可以将画面显示到对应屏幕上。例如,显示到副屏

adb shell MultiDisplayDemoPro -f /sdcard/Movies/video1.mp4 -d 2

动态切换画面到另一块屏幕

程序运行过程中,输入‘n’,按回车键,可以动态切换画面所在的屏幕,效果如下图

图片

移动画面到另一块屏幕

程序运行过程中,输入‘m’,按回车键,可以动态的移动画面到另一块屏幕,这个过程中会有一个过渡动画的效果,移动过程中画面会同时显示到两个屏幕上,两块屏幕上的内容拼成完整画面,直到画面全部移动到另一块屏幕上去,效果如下图:

图片

图片

多屏同显

程序运行过程中,输入‘s’,按回车键,可以将画面同时显示在多个屏幕上,模拟多屏同显的效果,如下

图片

退出

程序运行过程中,输入‘q’,按回车键 或者  Ctrl+C 可以终止程序执行。


关注公众号,阅读原文,获取demo源码

Android Graphics 多屏同显/异显 - C++示例程序(升级版) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值