logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

基于脚手架微服务的视频点播系统-播放控制部分

本文介绍了基于Qt和mpv库的视频播放器开发中的界面优化和播放控制实现。主要内容包括:1)将播放窗口改为无边框模式并实现拖拽功能;2)重写隐藏逻辑,当用户不操作时自动隐藏控制栏;3)引入mpv库解决Qt原生播放器格式支持不足的问题,详细说明了mpv库的配置和简单封装方法,包括播放控制、音量调节等核心功能实现。项目采用模块化开发方式,通过Git进行版本管理,已完成基本播放界面布局和核心播放控制功能。

文章图片
#微服务#架构#云原生 +3
基于脚手架微服务的视频点播系统-数据管理与网络通信部分的预备工作

现在客户端通信模块搭建好了,但是我们怎么去测验它是否有问题呢,这里我们就需要搭建一个假的服务器。MockServer是能够提供Mock功能的服务器,通过模拟真实的服务器,提供对来⾃客⼾端请求的真实响应。它允许用户创建模拟HTTP服务以模拟后端服务的响应,从而在开发和测试过程中,无需依赖实际的后端服务,也能够进行接口测试和功能验证。实际就是搭建⼀个HTTP服务器,构造模拟数据对客户端接口进行测试。这

文章图片
#微服务#架构#云原生 +4
基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(一)

本项目采用RESTful API是⼀种遵循REST架构风格,基于HTTP协议的应用程序接口设计规范,它提供了⼀种通过标准化的操作和资源访问模式进行客户端与服务器通信的⽅式。REST是Representational State Transfer的缩写,翻译过来就是表现层状态转化。资源(Resource)RESTful API 中的每⼀个对象、实体或数据都被抽象为⼀个资源。例如,用户、文章等都可以作

文章图片
#微服务#架构#云原生 +4
基于脚手架微服务的视频点播系统-脚手架开发部分-gflags,gtest及splog中间件的认识与使用

gflags是 Google 开发的⼀个开源库,⽤于 C++ 应⽤程序中命令行参数的声明、定义和解析。gflags 库提供了⼀种简单的方式来添加、解析和文档化命令⾏标志(flags),使得程序可以根据不同的运⾏时配置进行调整。编译时需要链接库-lgflags利⽤ gflags 提供的宏定义来定义参数。该宏的3个参数分别为命令⾏参数名,参数默认值,参数的帮助信息。DEFINE_bool(reuse_

文章图片
#微服务#中间件#架构 +1
基于脚手架微服务的视频点播系统-脚手架开发部分-jsoncpp,protobuf,Cpp-httplib与WebSocketpp中间件介绍与使用

JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,易于⼈阅读和编写,同时也易于机器解析和⽣成。它基于JavaScript的⼀个⼦集,但尽管它来源于JavaScript,JSON是独⽴于语⾔的,可以被多种编程语⾔读取。对象:由键值对组成,⼤括号{}包围。数组:由值的有序集合组成,⽅括号[]包围。值:可以是字符串、数字、对象、数组、布尔值( true / fa

文章图片
#微服务#中间件#c++ +2
基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装

RPC(Remote Procedure Call)远程过程调⽤,简单来说就是客⼾端在不知道调⽤细节的情况下,调⽤远程计算机上的某个功能就像调⽤本地功能⼀样,其主要⽬标就是让构建分布式计算(应⽤)更容易,在提供强⼤的远程调⽤能⼒时不损失本地调⽤的语义简洁性。因为brpc自带有日志输出模块,与websocket一样,无法更换除非改库内源码中所有的⽇志输出操作后重新编译库进⾏安装。

文章图片
#微服务#中间件#架构 +2
基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(二)

写这部分代码的时候碰到了两次bug,耗时很久就解决了一个,所以才鸽了一个月再来更新。这里先提前说一下本文结束时代码的bug。当然不是代码的问题经排查,是ffmpeg我最开时时版本使用的有问题。导致mpv通过url播放远端服务器上的m3u8文件时不能通过调整进度条正确设置播放位置。为什么这里不解决了呢,是因为这个问题仅出现在本地环回测试上,而博主在写服务端时搁服务端弄了个m3u8文件让我这个“有问题

文章图片
#微服务#架构#云原生 +3
基于脚手架微服务的视频点播系统-脚手架开发部分-FFmpeg,Etcd-SDK的简单使用与二次封装

为了能够与其他功能进⾏解耦,因此这⾥封装的时候由外部传⼊针对服务上线和下线所进⾏处理的接口进⾏回调处理,当前模块部分本⾝并不关注具体事件该如何处理。封装服务注册类,将客⼾端请求与租约保活部分封装起来,向外提供⼀个接⼝能够实现数据的新增即可,通过实例化的对象可以⽅便快捷的实现服务注册功能。封装服务发现类,将客⼾端请求与路径监视部分封装起来,通过实例化的对象可以⽅便快捷的实现服务发现功能,并针对发现的

文章图片
#微服务#etcd#c++ +2
基于脚手架微服务的视频点播系统-脚手架开发部分AMQP-SDK的简单使用与二次封装

AMQP,即Advanced Message Queuing Protocol,⼀个提供统⼀消息服务的应⽤层标准⾼级消息队列协议,是应⽤层协议的⼀个开放标准,为⾯向消息的中间件设计。基于此协议的客⼾端与消息中间件可传递消息,并不受客⼾端中间件不同产品,不同的开发语⾔等条件的限制。Erlang中的实现RabbitMQ等。

文章图片
#微服务#架构#云原生 +2
基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(三)-客户端主体部分完结

当用户需要进行一些比较敏感的操作时,我们需要为用户提供一个缓冲,再次确认用户是否需要进行此操作。比如退出登录,所以我们这里新增一个提示窗口,因为其构造较为简单,所以我们这里直接选择普通类即可,继承自QDialog:效果如下:我们这里有两种登录方式,一种是在已经有账户的情况下可以直接进行账密登录。而另一种的登录方式则是验证码登录,有账号时直接登录,没有则进行注册。我们先来处理后一种情况。请求url:

文章图片
#微服务#架构#云原生 +3
    共 61 条
  • 1
  • 2
  • 3
  • 7
  • 请选择