diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
index a5d005e..e2120c0 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
@@ -12,7 +12,7 @@
+ Version="1.2.222.0" />
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/SystemVolumeHook.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/SystemVolumeHook.cs
index b4914ff..22df5ed 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/SystemVolumeHook.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/SystemVolumeHook.cs
@@ -17,12 +17,20 @@ namespace BetterLyrics.WinUI3.Hooks
static SystemVolumeHook()
{
- _deviceEnumerator = new MMDeviceEnumerator();
- _defaultDevice = _deviceEnumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
-
- if (_defaultDevice != null)
+ try
{
- _defaultDevice.AudioEndpointVolume.OnVolumeNotification += AudioEndpointVolume_OnVolumeNotification;
+ _deviceEnumerator = new MMDeviceEnumerator();
+ // 找不到设备会抛出异常,在这里截获它
+ _defaultDevice = _deviceEnumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
+
+ if (_defaultDevice != null)
+ {
+ _defaultDevice.AudioEndpointVolume.OnVolumeNotification += AudioEndpointVolume_OnVolumeNotification;
+ }
+ }
+ catch (Exception ex)
+ {
+ _defaultDevice = null;
}
}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileCacheEntity.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileCacheEntity.cs
index ab17f36..8eb93ca 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileCacheEntity.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/FileCacheEntity.cs
@@ -3,27 +3,24 @@ using System;
namespace BetterLyrics.WinUI3.Models
{
+ [Preserve(AllMembers = true)]
[Table("FileCache")]
public class FileCacheEntity
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
- // 【新增】关键字段!
// 关联到 MediaFolder.Id。
- // 作用:
- // 1. 区分不同配置(即使两个配置连的是同一个 SMB,但在 APP 里视为不同源)。
- // 2. 删除配置时,可以由 MediaFolderId 快速级联删除所有缓存。
+ // 区分不同配置(即使两个配置连的是同一个 SMB,但在 APP 里视为不同源)。
+ // 删除配置时,可以由 MediaFolderId 快速级联删除所有缓存。
[Indexed]
public string MediaFolderId { get; set; }
- // 【修改】从 ParentPath 改为 ParentUri
// 存储父文件夹的标准 URI (smb://host/share/parent)
// 根目录文件的 ParentUri 可以为空,或者等于 MediaFolder 的 Base Uri
[Indexed]
public string? ParentUri { get; set; }
- // 【核心】标准化的完整 URI (smb://host/share/folder/file.ext)
// 确保它是 URL 编码过且格式统一的
[Indexed(Unique = true)]
public string Uri { get; set; }
@@ -38,7 +35,6 @@ namespace BetterLyrics.WinUI3.Models
// 记录修改时间,同步时对比使用
public DateTime? LastModified { get; set; }
- // ------ 元数据部分 (保持不变) ------
public string Title { get; set; } = "";
public string Artists { get; set; } = "";
public string Album { get; set; } = "";
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/PlayHistoryItem.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/PlayHistoryItem.cs
index 9d643fa..21dc4df 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/PlayHistoryItem.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/PlayHistoryItem.cs
@@ -5,6 +5,7 @@ using System.Text;
namespace BetterLyrics.WinUI3.Models
{
+ [Preserve(AllMembers = true)]
[Table("PlayHistory")]
public class PlayHistoryItem
{