diff --git a/publish/changeLog.md b/publish/changeLog.md index 6f3f6eef..cb592f3f 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -6,6 +6,7 @@ - 修复桌面歌词使用斜体出现截断的问题(#1106) - 修复某些情况下歌词的滚动问题 - 修复禁用切歌时歌曲播放完毕后的歌曲信息显示问题 +- 修复修改播放设置-音频输出设置后,所做的更改没有被保存的问题 ### 优化 diff --git a/src/renderer/core/useApp/usePlayer/useMediaDevice.ts b/src/renderer/core/useApp/usePlayer/useMediaDevice.ts index 9beef02f..1fbe2fc3 100644 --- a/src/renderer/core/useApp/usePlayer/useMediaDevice.ts +++ b/src/renderer/core/useApp/usePlayer/useMediaDevice.ts @@ -14,6 +14,7 @@ const getDevices = async() => { export default () => { let prevDeviceLabel: string | null = null + let prevDeviceId = '' const setMediaDevice = async(mediaDeviceId: string) => { let label = prevDeviceLabel @@ -30,9 +31,15 @@ export default () => { prevDeviceLabel = label // console.log(device) - setMediaDeviceId(mediaDeviceId).catch((err: any) => { + setMediaDeviceId(mediaDeviceId).then(() => { + prevDeviceId = mediaDeviceId + saveMediaDeviceId(mediaDeviceId) + }).catch((err: any) => { console.log(err) - saveMediaDeviceId('default') + setMediaDeviceId('default').finally(() => { + prevDeviceId = 'default' + saveMediaDeviceId('default') + }) }) } @@ -60,13 +67,13 @@ export default () => { // @ts-expect-error handleDeviceChangeStopPlay(device, mediaDeviceId) - setMediaDeviceId(device!.deviceId).catch((err: any) => { - console.log(err) - saveMediaDeviceId('default') - }) + void setMediaDevice(device!.deviceId) } - watch(() => appSetting['player.mediaDeviceId'], setMediaDevice) + watch(() => appSetting['player.mediaDeviceId'], (id) => { + if (prevDeviceId == id) return + void setMediaDevice(id) + }) void setMediaDevice(appSetting['player.mediaDeviceId'])