编写一个小而强大的 Windows 动态屏保壁纸

这篇具有很好参考价值的文章主要介绍了编写一个小而强大的 Windows 动态屏保壁纸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

两年前我做了第一个开源软件 DreamScene2 动态桌面,如今受到了很多人的喜欢,这增加了我继续做好开源软件的信心。之前的这个软件一直有人希望我加入一个设置屏保壁纸的功能,因为 DreamScene2 就是一个单纯的动态桌面的软件,所以一直没有加入这个功能。今天我带来一个新的开源软件,软件依然是小而强大,简洁并且快速。

欢迎 Star 和 Fork: https://github.com/he55/SonomaWallpaper

介绍

Sonoma Wallpaper 是首款将 macOS Sonoma 4k 120 帧动态屏保壁纸带到 Windows 11 的软件,壁纸包含了自然景观、城市景观、水下景观和地球四个主题的屏保共有 134 个 4k 屏保壁纸。


编写一个小而强大的 Windows 动态屏保壁纸

功能

  • 4k 120 帧率视频播放
  • 多语言
  • 高 dpi 支持
  • 深色模式
  • 多任务下载
  • Windows 11 支持

如何使用

选中已下载的视频壁纸,然后打开 显示为屏幕保护程序 开关,程序会在 2 分钟系统无操作时自动播放屏保壁纸。

下载壁纸

  • 选择一个壁纸点击下载
编写一个小而强大的 Windows 动态屏保壁纸
  • 等待壁纸下载完成
编写一个小而强大的 Windows 动态屏保壁纸
  • 壁纸下载完成后,可以点击预览按钮看效果
编写一个小而强大的 Windows 动态屏保壁纸

视频播放功能代码

在解码 4k 120 帧视频的时候我试过 VLC、迅雷的 APlayer、mpv、ffmpeg、PotPlayer 这些引擎或播放器,发现在 Windows 10 上它们对 120 帧视频支持的都不好。最后发现 Windows 11 已经原生支持了 120 帧视频播放,但只有 UWP 和 WinUI3 程序原生支持。WPF 要使用 UWP 的控件需要安装 Microsoft.Toolkit.Wpf.UI.XamlHost 这个 NuGet 包,这个包可以让 Win32 程序调用 UWP 的控件。包安装后在 xaml 文件中添加名称空间 xmlns:xamlhost="clr-namespace:Microsoft.Toolkit.Wpf.UI.XamlHost;assembly=Microsoft.Toolkit.Wpf.UI.XamlHost",然后添加 WindowsXamlHost 控件用来显示 UWP 的 MediaPlayerElement 媒体播放控件。

完整代码如下

<Window x:Class="WpfApp21.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp21"
        xmlns:xamlhost="clr-namespace:Microsoft.Toolkit.Wpf.UI.XamlHost;assembly=Microsoft.Toolkit.Wpf.UI.XamlHost"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <xamlhost:WindowsXamlHost
        ChildChanged="WindowsXamlHost_ChildChanged"
        InitialTypeName="Windows.UI.Xaml.Controls.MediaPlayerElement" />
</Window>

添加 ChildChanged 事件用来处理 MediaPlayerElement 控件创建成功后的要做的事情文章来源地址https://www.toymoban.com/news/detail-789854.html

  • Stretch 设置视频拉伸模式
  • Source 设置播放文件路径
  • AutoPlay 设置自动播放
  • IsMuted 设置静音
  • IsLoopingEnabled 设置循环播放
private void WindowsXamlHost_ChildChanged(object sender, EventArgs e)
{
    MediaPlayerElement mediaPlayerElement = (MediaPlayerElement)((WindowsXamlHost)sender).Child;
    if (mediaPlayerElement != null)
    {
        mediaPlayerElement.Stretch = Windows.UI.Xaml.Media.Stretch.UniformToFill;
        mediaPlayerElement.Source = MediaSource.CreateFromUri(new Uri("C:\wallpapers\comp_LW_L001_C006_PSNK_DENOISE_v02_SDR_PS_FINAL_20180709_FRC_sdr_4k_qp20_240p_t2160_tsa.mov"));
        mediaPlayerElement.AutoPlay = true;
        mediaPlayerElement.MediaPlayer.IsMuted = true;
        mediaPlayerElement.MediaPlayer.IsLoopingEnabled = true;
    }
}

到了这里,关于编写一个小而强大的 Windows 动态屏保壁纸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 编程实战:如何用 Java 编写一个简单而强大的 Tomcat

    学习完了JavaWeb,为了深入了解tomcat,打算手撕tomcat搭建自己的tomcat,希望对来访小伙伴也有帮助         Tomcat 是一个开源的 Web 服务器和 Servlet 容器,它可以提供动态 Web 内容的处理和交互功能。Tomcat 是用 Java 语言编写的,需要运行在 Java 虚拟机上,所以它可以跨平台运

    2024年02月14日
    浏览(10)
  • 制作自已的屏保动态

    win10 python3.X pycharm 注意:屏保程序打开就是全屏,可自动循环播放 我的样子如图 Gitee下载 1)新建一个虚拟环境安装pygame,pyinstaller两个库 2)使用pyinstaller打包 说明一下,pyinstaller打包,会加载环境里的全部内容,所以需要单独新建环境,这样在dist生成的exe文件会比较小。

    2023年04月27日
    浏览(2)
  • vscode 编写爬虫爬取王者荣耀壁纸

    网上关于爬虫大部分教程和编辑器用的都不是vscode ,此教程用到了vscode、Python、bs4、requests。 vscode配置Python安装环境可以看看这个大佬的教程 03-vscode安装和配置_哔哩哔哩_bilibili vscode配置爬虫环境可以参考这个大佬的教程【用Vscode实现简单的python爬虫】从安装到配置环境变

    2024年02月04日
    浏览(16)
  • C#/WPF 设置和启动Windows屏保程序

    前言         我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。 屏保注册表参数         设置电脑屏保参数,在个性化设置锁屏界面屏幕保护程序设置进行调节

    2024年01月18日
    浏览(12)
  • 个人用C#编写的壁纸管理器 - 开源研究系列文章

    今天介绍一下笔者自己用C#开发的一个小工具软件:壁纸管理器。 开发这个小工具的初衷是因为Windows操作系统提供的功能个人不满意,而且现在闲着,所以就随意写了个代码。如果对读者有借鉴参考作用就更好了,能够直接代码段复用即可。这个壁纸管理器也比较简单,基于

    2024年02月13日
    浏览(12)
  • Windows权限维持—自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon

      在Windows系统中,很多后门利用的方式不是太会区别在域中还是单机上,只是需要考虑在没有网络情况下,如何将shell反弹回来,就比如,在域中一个无网络的主机和一台有网络的主机,前期通过有网络的主机转发上线到无网络主机上,那么我们木马是不是也可以这样设置

    2024年02月12日
    浏览(11)
  • 【权限维持】Windows&自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon

    1、自启动路径加载 将后门放置该目录,服务器重启即上线 2、自启动服务加载 3、自启动注册表加载 -当前用户键值 -服务器键值(需要管理员权限) -添加启动项 4、计划计时任务 参考前面横向移动 远程连接时,连按五下shift键可以打开粘滞键 系统自带的辅助功能进行替换执

    2024年02月07日
    浏览(12)
  • 分享一个在 dotnet 里使用 D2D 配合 AOT 开发小而美的应用开发经验

    本文将分享我在 dotnet 里面使用 Direct2D 配合 AOT 开发一个简单的测试应用的经验。这是我用不到 370 行代码,从零开始控制台创建 Win32 窗口,再挂上交换链,在窗口上使用 D2D 绘制界面内容,最后使用 AOT 方式发布的测试应用。成品文件体积不超过 10MB 且运行内存稳定在 60MB 以

    2024年04月26日
    浏览(13)
  • QT开发实战-动态壁纸软件

    项目源代码在下面链接获取: ----------------------------- 开发者:CodeSharkSJ 希望此项目能加强你对Qt的应用 文章目录 项目图与开发环境 核心技术原理 自定义窗口程序 UI布局 背景绘制 样式表 基本实现 QWebEngine QMedia使用 系统托盘隐藏 记忆功能 应用程序打包 开发环境: visual studio 2

    2024年02月05日
    浏览(20)
  • 用python做一个抖音上很火的罗盘时钟(更新版,并将其做成屏保程序)

    最近在抖音上看到一个非常有趣的时钟,但是几乎都是css,html和 js做的。想找一下python的源代码,可是网上都没有相关的资源,有一个用 turtle库做的运行时间长了会一顿一顿的,效果与抖音上刷到的差别较大。于是决定自己写一个,花了两三个晚上学习了一下python的pygame库

    2023年04月24日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包