IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

感谢IT之家网友 Zcxsythenew 的原创投稿

Windows 10创意者更新(Creators Update)已经发布了几个月。我们应该还记得,微软在这个版本中新增了在通知中添加进度条的功能,并首先在应用商店用上了这个功能。不过,你有没有想过,这个通知可以做一些别的东西呢?下面,我来介绍一下,如何以Creator的身份,做出一个Creative的桌面歌词。

成果示例

我已经做了一个很简单的实现桌面歌词的应用。如果你看不懂代码,你可以选择直接安装这个应用,算是捧个场。应用下载地址:请点此链接。

在电脑上的安装方法:

1.打开旁加载。

2.下载AppPackage.zip。

3.全部解压,然后找到ps1文件,右键单击,然后选择“使用PowerShell运行”。

4.遇到的提示一律允许。

效果图:

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

通知的效果

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

整个屏幕的效果

利弊分析

可以看到,这个桌面歌词占了屏幕右下角挺大的一块(尤其是Win10秋季创意者更新)。你可以作适当的调整,例如去掉进度条和按钮(按钮不在本文介绍的范围内),仅保留歌词,这样占用的空间会少一点。另外,此通知需要常驻在屏幕上,为了实现这个效果,在手机上会导致屏幕的其它部分无法操作(必须划掉通知,但这样桌面歌词就失去意义),因此,本教程仅适用于PC和除了手机以外的其它可能适合的设备。

第一步:启动播放器

MediaPlayer player = new MediaPlayer();

player.AutoPlay = true;

StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri( ms-appx:///SampleSong.mp3 ));

player.Source = MediaSource.CreateFromStorageFile(file);

以上的代码表示新建一个播放器,为它设置一个文件资源,然后让它自动播放。

第二步:挂载事件

播放器大约每0.25秒就会触发一次PositionChanged事件,频率还是挺高的。我们可以利用这个事件来显示进度、时间和歌词。

player.PlaybackSession.PositionChanged += PlaybackSession_PositionChanged;

第三步:发送通知

在Visual Studio中,点击工具 NuGet包管理器 程序包管理器控制台。等待“PM ”字符出现,然后输入

Install-Package Microsoft.Toolkit.Uwp.Notifications

按回车键并等待完成。

然后,可以使用如下代码发送通知:

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

第一屏:此屏代码实现的效果有:

1.设置标题为“Scarborough Fair”

2.添加了进度条,并且绑定了四个字符串(BindableString)

3.设置了Scenario,使其常驻在屏幕上

4.设置了静音

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

第二屏:此屏代码实现的效果有:

1.给之前绑定的四个字符串指定值

2.给这个通知指定唯一的Tag

3.设置SequenceNumber为0,使系统知道这个数据是及时的

4.发送通知

第四步:处理事件

还记得吗?我们刚刚挂载了PositionChanged事件,现在该是处理它的时候了。

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

图中的“Sample”表示Tag。

这里的progressValue用于显示进度条,是从0到1的数字(转为字符串),我通过Milliseconds进行计算,因为我想要它尽量精确。

progressStatus显示当前播放的时间,其中sec是比较容易忽略的。当秒数小于10的时候,十位数是0,不能省略,否则会显示“1:2”而不是“1:02”。

我们可以发现这里并没有设置progressValueString,因为我们已经在第三步设置它为总时间4:13,而这个总时间是不会改变的,所以在这里我们无需设置它。

最后是最难的progressTitle。这里你需要解析lrc或者其它歌词格式,需要由你自己来完成。不过,如果你还没有会解析歌词,而又想提前体验一下效果,我提供临时的解决方案,以后你再慢慢学习解析歌词。

IT之家学院:利用Win10通知巧妙实现UWP桌面歌词

源代码下载:

考虑到水印可能遮挡代码以及第四步的临时解决方案的代码过长,本文提供源代码下载。

以上的代码请点此链接下载

选择“MusicSampleforITHome.zip”即可。

下一步做什么?

下一步当然是把上面的代码化用了,因为你可以发现所有的播放源、歌曲名等等已经在代码里面写死了。你需要做的就是将其灵活地运用在你需要它的位置。祝你成功!

也许你还喜欢

奇特产品 小暮カレンW灬1688 在线:

在当今全球化的时代,市场上涌现出众多产品,而国 精 产品 W灬

一阳吞三阴与小暮カレン技术指标关

在股票市场中,技术分析是投资者广泛采用的一种方法,通过对各

《暗喻幻想:ReFantazio》灰雨支持者

《暗喻幻想:ReFantazio》中的灰雨支持者或者追随者是游戏里非

《辐射》真人剧集第二季将于11月开

亚马逊Prime Video热门剧集《辐射》第二季消息来了,据第一季女演

不用网也能玩的游戏推荐 2026精品

下面整理了几款不用网能玩的游戏,很适合存在手机里随时打开。它们像

《暗喻幻想》魔性华丽锅怎么制作

《暗喻幻想》是一款幻想风格RPG游戏。魔性华丽锅是游戏中的烹饪食物,

《暗喻幻想》修罗护手和高级斩击强

《暗喻幻想》是一款幻想风格RPG游戏。游戏中有很多被动,这些被动可以给玩

2026儿童数字游戏合集 轻松益智玩

不少家长在替孩子寻找适合启蒙的数感互动内容时,常常不知道该从哪里

最高1TB!华为nova 13/nova 13 Pro正

今日,华为终于揭开了新一代nova——华为nova 13系列的神秘面

高人气部落游戏下载推荐 2026部落

不少玩家询问人气较高的部落游戏下载推荐哪个好,这类部落题材作品通