基于Flask的网络遥控器的设计与实现
2021-04-25李希阁
李希阁
(昆明理工大学 信息工程与自动化学院,云南 昆明 650500)
0 引 言
随着计算机技术和互联网技术的发展,人们的生活方式发生了变化,只需一台电脑即可在电脑上看电影和网络电视直播。但这种方式存在一定的缺点,它无法像传统的电视一样使用遥控器进行播放控制,在实施换台或者其他播放控制时需要使用鼠标操作。当人们使用大显示器观看网络电视时,一般会离电脑有一定的距离。此时,使用鼠标实施播放控制会降低人们的观看体验。同样地,使用电脑听音乐时大多数人不会坐在电脑旁,需要人到电脑旁控制音乐的播放。随着智能手机技术的发展,除了能满足日常通信外,手机也可以成为远程遥控设备。文献[1]研究设计了一种通过手机遥控的智能药盒系统,通过WiFi模块控制智能药盒的一部分功能。文献[2]使用ARM9和WiFi技术实现了手机对电磁锁的控制。文献[3]使用互联网技术和红外控制技术实现了手机程序对开关的遥控。
基于此,本文研究设计了基于Flask框架[4-5]的网络遥控器,使用HTML语言开发网络遥控器控制面板,使用Flask框架开发网络遥控器控制系统,因此通过手机即可访问网络遥控器控制面板,从而进行网络电视和音乐的播放控制,提高了人们观看网络电视的体验和使用电脑听音乐的便捷性。
1 网络遥控器架构设计
网络遥控器的设计架构如图1所示,主要分为两个部分。第一部分为网络遥控器控制面板。它是由HTML语言开发的网页,部署于电脑,用于远程控制网络电视和音乐播放。用户可以通过手机点击链接或者扫码的方式访问网络遥控器控制面板。第二部分是用Flask框架搭建的Web系统[6],包含网络遥控器控制器和控制模块。控制器根据不同网络遥控器控制面板的请求调用不同的遥控器控制模块。用户点击控制面板上的按键后,通过Ajax[7-8]请求到达网络遥控器控制器,后由控制器将控制指令传输到网络遥控器控制系统。网络遥控器控制系统的核心是控制模块。它是任务的最终执行者,包括网络电视控制模块和音乐播放控制模块。网络电视控制模块负责网络电视的播放、暂停、换台及音量控制等操作。音乐播放控制模块主要负责电脑音乐的播放、暂停、曲目切换以及音量控制等操作。
图1 网络遥控器架构设计图
2 实验环境介绍
本文实验在一台系统为macOS的笔记本电脑上进行。此电脑搭配2核CPU,处理器主频为2.3 GHz,内存为8 GB。实验硬件环境配置如表1所示。网络遥控器控制面板服务和网络遥控器控制系统均部署于此电脑。通过一部普通智能手机,控制此电脑上的网络电视播放和音乐播放。使用Tomcat 8中间件[9-10]部署遥控器控制面板前端服务。网络遥控器控制系统使用Python语言开发,Python版本为3.8,采用的Flask版本为1.1.2。
表1 实验硬件环境配置
3 网络遥控器控制面板设计
网络遥控器控制面板的设计与传统电视的遥控设计非常相似,如图2所示,目的是使用户能够快速熟悉掌握遥控器控制面板的使用。网络电视遥控器控制面板和音乐播放遥控器控制面板是两个不同的页面。
图2(a)为网络电视遥控器的控制面板。一个数字键对应一个电视台,点击数字键即可切换到相应电视台。本实验搜集了网络上24个网络电视台,分别对应控制面板的按键1~24。其他按键为音量控制键、暂停键及播放键。
图2(b)是音乐播放遥控器控制面板。常用操作按键包含音量控制、上一首、下一首、暂停及播放按键。网络遥控器控制面板采用HTML语言进行开发。
图2 网络遥控器控制面板
开发完毕后,使用Tomcat中间件将控制面板前端页面部署到服务器中供用户访问。用户点击前端的访问链接即可访问网络遥控器控制面板,也可将访问链接做成二维码,使用户扫描二维码即可访问网络遥控器控制面板。进入网络遥控器控制面板后,用户点击不同的按键即可将不同的控制指令通过Ajax传送到网络遥控器控制系统。控制系统根据不同的控制指令做出不同的控制反馈。
4 网络遥控器控制系统设计
4.1 网络遥控器控制器
网络遥控器控制器采用Flask框架开发。Flask是一个便捷的轻量级Web开发框架,与其他Web开发框架相比,具有配置和使用简单的特点。Flask安装完成后,在项目里配置完路由信息即可启动[11]。网络遥控器控制器是Flask的接口服务,包含网络电视控制接口和音乐播放控制接口,如图3所示。网络电视控制接口负责接收网络电视遥控器控制面板的指令,并将指令传送到网络电视控制模块,使网络电视控制模块做出相应的反馈;音乐播放控制接口负责接收音乐播放遥控器控制面板的指令,并将指令传送到音乐播放控制模块,使音乐播放控制模块做出相应的反馈。
4.2 网络电视控制模块
网络电视控制模块是网络电视播放控制的核心组件,是任务的实际执行者,工作流程如图4所示。网络电视控制模块具有网络电视换台控制、音量控制、暂停控制及播放控制等功能。其中,网络电视换台控制通过Selenium工具实现,音量控制、暂停控制及播放控制通过网络电视控制模块调用系统的媒体播放控制功能实现。
图3 网络遥控器控制器
图4 网络电视控制模块工作流程图
Selenium是一款开源的自动化测试工具,能够模仿人类行为测试Web应用程序,控制浏览器自动访问Web应用,达到自动化测试的目的[12-13]。基于此,本文将Selenium应用到网络遥控器控制系统,通过访问不同的网络电视台地址观看不同的网络电视。使用Selenium前,需要在Flask框架搭建的服务中导入Selenium库,根据浏览器版本下载对应版本的浏览器驱动。使用Selenium加载浏览器驱动即可控制浏览器进行网络电视换台。网络电视控制模块接收到换台指令后,根据指令匹配电视台,进而获取该电视台的访问链接。实验搜集了24个电视台的访问链接,并与网络电视控制面板的24个数字按键一一对应。网络电视控制模块会根据控制面板发送的指令找到对应的电视台访问链接。使用Selenium控制浏览器访问链接即可观看此电视台的节目。
4.3 音乐播放控制模块
音乐播放控制模块的工作流程如图5所示。音乐播放控制模块接收网络遥控器控制器的指令,根据不同的指令调用电脑系统的媒体播放控制功能,从而实现音乐播放控制。
图5 音乐播放控制模块工作流程图
5 结 语
针对在网络上观看网络电视和使用电脑听音乐时无法使用遥控器的问题,本文研究设计了基于Flask框架的网络遥控器,使用户可以通过手机远程控制网络电视的播放和电脑音乐的播放,解决了以往用户必须在电脑旁进行操作的问题,提高了人们观看网络电视的观看体验和使用电脑听音乐的操作便捷性。使用该遥控器只需在电脑上安装程序,使用智能手机即可完成远程控制,不需要投入其他设备,在方便用户使用的同时,无附加成本,具有极高的应用可行性和实用价值。