别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

ue5 lyra探索分析1 刚开始默认的地图中 然后就把这些数据传送给了 lyragammode了 在这个函数里 处理上面的lyraexperiencedefinition数据 其中包括pawn是谁 都有什么action 阅读详情

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

在独立游戏开发领域,时间就是最大的敌人。当你的团队只有3-5人时,从零开始构建一个支持多人对战的游戏框架可能需要数月时间——网络同步、输入系统、UI框架、角色控制,每一个模块都能消耗掉宝贵的开发周期。而Lyra Starter Game的出现,恰好解决了这个痛点。

不同于传统Demo项目只展示技术亮点,Lyra本质上是一个可直接二次开发的完整游戏模板。它内置了:

  • 基于GAS的技能系统
  • 支持多平台的Enhanced Input输入控制
  • 模块化的CommonUI界面框架
  • 数据驱动的游戏参数配置体系
  • 开箱即用的网络同步方案

下面我们将以实际案例演示,如何用48小时基于Lyra改造出一个可运行的多人对战原型。假设我们要做一个科幻主题的团队竞技游戏,核心修改点包括:替换角色模型、调整武器数值、配置新地图规则。

1. 环境准备与项目分析

1.1 基础环境配置

首先从Epic Games Launcher获取Lyra Starter Game项目(需UE5.1+版本)。建议新建空白C++项目后,通过"迁移"功能导入Lyra内容:

# 在项目目录执行迁移命令
RunUAT.bat BuildGraph -target="Make LyraDerivedProject" -script=Engine/Build/InstalledEngineBuild.xml

关键目录结构说明:

路径 用途
/Content/Lyra/Characters 角色蓝图与动
ue5 lyra的角色动画系统 持续更新中。。。。 当然弊端是有的,如果不同的骨架,骨架偏差比较大, retarget后动画会有偏差,所以虚幻做的retarget大面上看上去是美好的,如果要抠细节,会有很多的不足。在这些逻辑中该用到AI中的layer都用了layer,只不过这些layer有的是空的,逻辑都在其他动画蓝图中。这个方法去调用,相当于用B中的layer覆盖了A中的layer的逻辑,相当于具体的逻辑实现都在B中实现。在A中写了整个的动画逻辑比如locomotion,上半身特定动画融合,挨枪子的动画融合,全身动画融合等。 阅读详情

相关推荐

UE5.2 LyraDemo源码阅读笔记(一)

GameMode:默认模式>默认游戏模式>选中B_LyraGameMode。 启动关卡:默认地图>编辑器开始地图。GameFeature: 启动插件:编辑/插件,在插件列表中选中GameFeature和Modular Gameplay。 创建GameFeature:编辑>插件>+添加>游戏功能(GameFeature,适用C++) 保存路径不能更改:真要改同时要去AssetManager更改对于的路径。 GameFeature入口: 默认下GameFeature插件会加载所有的自定义GameFeature功

u012740992的专栏 1991

基于UE5 Lyra框架快速搭建多人对战游戏原型实战指南

在虚幻引擎5(UE5)多人游戏开发中,网络同步、技能系统和UI框架是核心挑战。Gameplay Ability System (GAS) 提供了强大的技能与属性管理架构,而网络复制则是确保多玩家体验一致性的关键技术。这些技术共同构成了现代游戏后端逻辑的基石,其价值在于能高效、可预测地处理复杂的游戏状态与交互。在团队竞技、大世界探索等应用场景中,一个稳固的底层框架至关重要。本文聚焦于Epic官方推出的Lyra Starter Game框架,它正是集成了GAS、Common UI等UE5核心特性的最佳实践样板。

weixin_30575517的博客 257

UE5 Lyra实战指南:从零搭建多人对战原型,从环境配置到Bot接入

在虚幻引擎5(UE5)中,多人对战玩法开发常因网络同步、角色状态管理等底层逻辑而陷入繁琐的框架搭建。Epic官方推出的Lyra项目正是一套完整可运行的多人对战框架,它采用数据驱动架构,将角色移动、基于GAS的技能系统、装备、增强输入、动画与UI等高频模块预先封装,并提供开箱即用的GameMode与Bot组件。开发者只需在现有“游戏骨架”上替换资产、调整数据,即可快速验证射击、动作类团队对抗玩法的核心手感。借助Lyra自带的机器人AI,无需联网就能模拟多人对战场景,极大降低原型迭代成本。本文从电脑配置、UE5

weixin_29001419的博客 278

UE5 Lyra项目解析:从模块化架构到GAS集成,构建完整游戏框架

在游戏开发中,模块化设计和关注点分离是构建可维护、可扩展大型项目的核心原则。通过将复杂系统拆分为独立的功能模块,并利用消息总线进行低耦合通信,可以显著降低代码维护成本。游戏能力系统(GAS)与增强输入系统的集成,为处理多设备输入和复杂技能逻辑提供了优雅的解决方案,实现了输入检测与逻辑执行的分离。这种架构模式在多人游戏开发中尤其重要,它能有效管理游戏状态、处理网络同步和资源加载。以UE5的Lyra Starter Game为例,该项目完整展示了如何将这些工程实践应用于生产级竞技场射击游戏,为开发者提供了从角色

weixin_34326558的博客 364

从Lyra到Gyra:UE5游戏框架进阶与GAS系统实战解析

Gameplay Ability System(GAS)是虚幻引擎中用于构建复杂技能与状态管理的核心框架,其基于组件化与数据驱动的设计理念,通过Ability、AttributeSet、GameplayEffect等核心类实现技能逻辑、属性管理与效果应用的解耦。该技术体系的价值在于为大型多人在线游戏提供了可预测、可同步且高度模块化的能力解决方案,尤其适用于MMO、MOBA、动作RPG等需要处理大量技能交互与状态同步的场景。本文聚焦于UE5官方示例项目Lyra所展示的工业化框架实践,针对开发者在学习过程中常遇

weixin_30652897的博客 376

从UE新手到拿下Offer:一份让HR眼前一亮的虚幻引擎求职作品集应该怎么准备?(附GitHub模板)

本文详细指导如何准备一份让HR眼前一亮的虚幻引擎求职作品集,涵盖技术美术、蓝图程序员和环境美术三大岗位的核心展示要点。通过二次创作官方资源、搭建技术博客和运用STAR法则,帮助UE新手打造可验证的能力证据链,提升求职竞争力。附GitHub模板,助力高效完成作品集。

weixin_30920853的博客 370

UE5 Lyra框架深度解析:从模块化架构到GAS实战应用

在现代游戏开发中,模块化架构与数据驱动设计是构建可维护、可扩展项目的核心思想。其原理在于通过功能解耦和配置与逻辑分离,提升团队协作效率与项目迭代速度。这一技术范式在大型游戏引擎中尤为重要,能有效管理复杂度。以虚幻引擎5(UE5)为例,其官方提供的Lyra示例项目便是这一思想的集大成者,它深度集成了Gameplay Ability System,为角色技能、属性管理与战斗逻辑提供了工业级的解决方案。Lyra框架通过插件化设计,将游戏功能拆分为独立模块,并结合增强输入系统与Common UI,实现了从底层框架到

weixin_34293059的博客 429

UE5架构深度解析:Lyra模板、GAS与多人同步

游戏引擎架构决定了一个大型项目的可扩展性、运行效率与团队协作边界。UE5作为现代引擎代表,通过模块化、数据驱动和反射系统等基础机制,将复杂逻辑收敛为可追踪的数据流。理解这些底层原理,是开发者从“会写功能”进阶到“看懂引擎思考”的关键。以Lyra工程为范本拆解GameFeature插件与数据驱动设计,深入GAS战斗框架的属性、效果与能力链路,探讨多人同步中的服务器权威模型与预测回滚,并解析启动加载管线及Unreal Insights性能分析方法——这些主题覆盖了从工程组织到运行时优化的完整链路,适合具备UE

weixin_31896061的博客 359

UE5 Lyra示例项目全解析:从架构到实战的进阶指南

在游戏引擎领域,UE5凭借强大的实时渲染与开放工具链,成为团队和个人开发者构建高质量项目的热门选择。官方提供的示例项目往往藏着大量工程智慧,Lyra就是典型代表。它不仅是一个可运行的第三人称射击游戏,更是一套基于模块化设计、由数据驱动的完整游戏框架。通过理解其核心模块划分、Experience配置机制,以及GAS(Gameplay Ability System)、CommonUI等关键系统的协作原理,开发者能够快速理解商业级项目的组织方式。无论是想学习底层架构设计,还是解决多平台UI适配、技能网络同步等实战

weixin_33924770的博客 287

UE5 Lyra游戏架构解析:从懵懂到工程思维

游戏开发中,架构设计是决定项目能否规模化的关键。现代引擎普遍采用模块化、数据驱动和组件化方式,以应对复杂玩法需求。在UE5中,GAS(Gameplay Ability System)与增强输入等系统的集成已成为主流实践,而Lyra示例项目正是Epic官方对这套工程范式的完整呈现。它并不只是一个画面展示Demo,而是一套可复用的游戏框架,覆盖了Pawn组装、技能系统、UI输入管理、游戏体验配置等全链路。对于从蓝图小Demo迈向大型工程的开发者而言,学习Lyra能深刻理解数据资产如何驱动玩法逻辑、插件如何按需加

weixin_30430677的博客 239

告别Demo焦虑:用UE5 Lyra的GameFeature插件化思路,管理你自己的独立游戏项目

本文探讨了如何利用UE5 Lyra的GameFeature插件化架构来高效管理独立游戏项目,解决代码膨胀和团队协作难题。通过解析Lyra的核心机制和实战案例,展示了插件化如何缩短编译时间、减少冲突并优化热更新,为开发者提供可落地的项目管理方案。

weixin_42659252的博客 164

网工最容易搞混的三个概念:防火墙、网闸、堡垒机,一文让你轻松搞明白。

网闸的作用可以简单概括为:在两个或多个不同安全级别的网络(如内网和外网、普通网与高安全网、受限网与互联网)之间建立一个严格隔离、信息流转的安全桥梁。它的核心任务是实现数据安全传输与隔离,避免网络之间的直接连接带来的安全隐患。数据传输安全:网闸保证数据从一个网络到另一个网络时,能够进行审查、过滤和转换,防止恶意数据或非法信息被传入内部网络或外部泄露。高安全性隔离:网闸常常用于企业的内外网隔离、军事网络、政府机关等对数据隔离要求极高的环境。

HWP18612324139的博客 3630

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1835

Cadence Virtuoso实战:用gm/Id方法搞定折叠式共源共栅放大器设计(附完整仿真流程)

本文详细介绍了在Cadence Virtuoso设计环境中,运用gm/Id方法高效设计折叠式共源共栅放大器的完整实战流程。该方法通过工艺特征曲线,将设计指标映射到晶体管尺寸与偏置,有效克服深亚微米工艺下传统方法的不足。文章以TSMC 180nm工艺为例,从指标拆解、参数查找、电路搭建、仿真验证到问题调试,提供了清晰、可复现的操作指南,并探讨了自动化脚本与版图考量,助力工程师和学生提升模拟IC设计效率与成功率。

jwt8token的博客 638

Windows 11登录界面密码框消失Bug解析与解决方案

Windows操作系统登录认证机制是系统安全的第一道防线,其图形界面由桌面窗口管理器(DWM)负责渲染。当UI元素渲染异常时,会导致密码输入框等关键组件不可见。这类图形子系统故障通常源于驱动兼容性或主题服务冲突,在Windows 11最新累积更新后尤为常见。通过系统文件检查(sfc)、注册表修复或创建新用户等工程实践方法可有效解决问题。对于企业IT环境,建议采用PIN码或生物识别等替代认证方案,同时定期执行磁盘清理和系统健康检查等Windows维护操作,确保认证服务稳定运行。

weixin_33806859的博客 558

人形机器人构成及成本估算(附报告)

这些执行器本身由螺杆、减速器、电机、传感器、滚珠轴承和编码器等组件构成。实现线性与旋转运动互转。人形机器人的运动系统可以由电驱动、液压驱动或气动驱动组成,但由于电驱动具有更高的精度和更快的响应速度,正在成为主流设计方案。执行器:NSK、THK、Harmonic Drive、Leaderdrive、Nidec、Moons。由螺杆、减速器、电机、传感器、轴承和编码器组成(如上为Tesla Optimus执行器设计示意)。传感器:Keyence、Robosense、Sensata、ATI、TE、Sony。

具身机器人和通用AI 1753

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

m0_58523831的博客 1万+

【2025年华为秋招(AI)-11月19日-第一题(100分)- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 本文包含15道单选题和5道多选题,涵盖机器学习、深度学习、概率统计和数值计算等多个领域。单选题涉及Transformer的Softmax层作用、最小二乘法拟合、概率密度计算、注意力机制、反向传播问题、ROC曲线用途、截断误差来源等知识点。多选题考察大模型训练技术、BERT/GPT比较、强化学习对齐方法、CNN常见层以及PCA特性等内容。题目设计注重理论与实践结合,既包含数学推导,又关注前沿技术应用,全面检验读者对机器学习核心概念的理解能力。正确答案均附有详细解析,帮助理解相关技术原理。

m0_73659489的博客 140

Avalonia+ReactiveUI跨平台路由:从零到舞者,你的UI也能跨界起舞?

至此,你已掌握了Avalonia+ReactiveUI的跨平台路由精髓!你的应用现在能够优雅地在各个界面间穿梭,就像是在不同星球间跳跃的宇宙飞船。无论是初探跨平台开发的新手,还是经验丰富的老船长,这段旅程都能让你的UI编排技能更上一层楼。现在,是时候让世界见证你的跨平台魔术了!💫记住,每一次实践都是向着完美编舞迈进的一步,勇敢地在你的项目中尝试吧!如果在航行中遇到风暴,别忘了回来看看这篇指南,或者在评论区抛出你的救生圈,我们一起解决!🌊。

java专栏 1532

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 逆向Flutter应用实战:手把手教你用Frida 16.10 Hook SSL函数并绕过证书锁定
下一篇: 深入QtCreator的代码模型:为什么Clang后端会启动失败,以及如何正确管理你的编译工具链
indienova
博客等级 码龄10年 31粉丝 537原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值