默认禁用 使用设备能处理的最大声道数输出音频 设置,修复高级音频API与自定义音频输出设备功能冲突的提示显示

This commit is contained in:
lyswhut
2024-05-02 14:13:16 +08:00
parent 6933baafca
commit ee6a6f4b94
12 changed files with 87 additions and 25 deletions
@@ -22,7 +22,7 @@ dd
.gap-top
base-checkbox(id="setting_player_showTaskProgess" :model-value="appSetting['player.isShowTaskProgess']" :label="$t('setting__play_task_bar')" @update:model-value="updateSetting({'player.isShowTaskProgess': $event})")
.gap-top
base-checkbox(id="setting_player_isMaxOutputChannelCount" :model-value="appSetting['player.isMaxOutputChannelCount']" :label="$t('setting__play_max_output_channel_count')" @update:model-value="updateSetting({'player.isMaxOutputChannelCount': $event})")
base-checkbox(id="setting_player_isMaxOutputChannelCount" :model-value="isMaxOutputChannelCount" :label="$t('setting__play_max_output_channel_count')" @update:model-value="handleUpdateMaxOutputChannelCount")
.gap-top
base-checkbox(id="setting_player_isMediaDeviceRemovedStopPlay" :model-value="appSetting['player.isMediaDeviceRemovedStopPlay']" :label="$t('setting__play_mediaDevice_remove_stop_play')" @update:model-value="updateSetting({'player.isMediaDeviceRemovedStopPlay': $event})")
@@ -42,10 +42,10 @@ dd(:aria-label="$t('setting__play_mediaDevice_title')")
<script>
import { ref, onBeforeUnmount, watch } from '@common/utils/vueTools'
import { hasInitedAdvancedAudioFeatures } from '@renderer/plugins/player'
import { hasInitedAdvancedAudioFeatures, setMediaDeviceId } from '@renderer/plugins/player'
import { dialog } from '@renderer/plugins/Dialog'
import { useI18n } from '@renderer/plugins/i18n'
import { appSetting, updateSetting } from '@renderer/store/setting'
import { appSetting, saveMediaDeviceId, updateSetting } from '@renderer/store/setting'
import { setPowerSaveBlocker } from '@renderer/core/player/utils'
import { isPlay } from '@renderer/store/player/state'
import { TRY_QUALITYS_LIST } from '@renderer/core/music/utils'
@@ -86,8 +86,10 @@ export default {
confirmButtonText: t('confirm_button_text'),
})
if (confirm) {
appSetting['player.audioVisualization'] = false
appSetting['player.mediaDeviceId'] = mediaDeviceId.value
updateSetting({
'player.audioVisualization': false,
'player.mediaDeviceId': mediaDeviceId.value,
})
} else {
mediaDeviceId.value = appSetting['player.mediaDeviceId']
}
@@ -108,6 +110,25 @@ export default {
updateSetting({ 'player.powerSaveBlocker': enabled })
}
const isMaxOutputChannelCount = ref(appSetting['player.isMaxOutputChannelCount'])
const handleUpdateMaxOutputChannelCount = async(enabled) => {
isMaxOutputChannelCount.value = enabled
if (appSetting['player.mediaDeviceId'] != 'default') {
const confirm = await dialog.confirm({
message: t('setting__play_advanced_audio_features_tip'),
cancelButtonText: t('cancel_button_text'),
confirmButtonText: t('confirm_button_text'),
})
if (!confirm) {
isMaxOutputChannelCount.value = false
return
}
await setMediaDeviceId('default').catch(_ => _)
saveMediaDeviceId('default')
}
updateSetting({ 'player.isMaxOutputChannelCount': enabled })
}
return {
appSetting,
@@ -116,6 +137,8 @@ export default {
mediaDeviceId,
handleMediaDeviceIdChnage,
handleUpdatePowerSaveBlocker,
isMaxOutputChannelCount,
handleUpdateMaxOutputChannelCount,
playQualityList,
}
},