优化音频可视化与音频设备输出设置冲突的提示机制

pull/930/merge
lyswhut 2022-03-13 11:32:40 +08:00
parent a4c851899f
commit 2913c0c7de
5 changed files with 23 additions and 5 deletions

View File

@ -341,7 +341,8 @@
"setting__play_mediaDevice": "Audio output", "setting__play_mediaDevice": "Audio output",
"setting__play_mediaDevice_remove_stop_play": "Pause the song when the current sound output device is changed", "setting__play_mediaDevice_remove_stop_play": "Pause the song when the current sound output device is changed",
"setting__play_mediaDevice_title": "Select a media device for audio output", "setting__play_mediaDevice_title": "Select a media device for audio output",
"setting__play_media_device_tip": "This function conflicts with the audio visualization function. You have enabled audio visualization. This setting is temporarily unavailable. Please go to the playback details page to close the audio visualization and restart the software before modifying this setting.", "setting__play_media_device_error_tip": "This function conflicts with the audio visualization function. You have enabled audio visualization when you started the software this time. This setting is temporarily unavailable. Please restart the software and then modify this setting.",
"setting__play_media_device_tip": "This feature conflicts with Audio Visualization, both cannot be enabled at the same time, would you like to turn Audio Visualization off and apply the selected audio output settings?",
"setting__play_quality": "Play 320K quality songs first (if supported)", "setting__play_quality": "Play 320K quality songs first (if supported)",
"setting__play_save_play_time": "Remember playback progress", "setting__play_save_play_time": "Remember playback progress",
"setting__play_task_bar": "Show playing progress on the taskbar", "setting__play_task_bar": "Show playing progress on the taskbar",

View File

@ -341,7 +341,8 @@
"setting__play_mediaDevice": "音频输出", "setting__play_mediaDevice": "音频输出",
"setting__play_mediaDevice_remove_stop_play": "当前的声音输出设备被改变时暂停播放歌曲", "setting__play_mediaDevice_remove_stop_play": "当前的声音输出设备被改变时暂停播放歌曲",
"setting__play_mediaDevice_title": "选择声音输出的媒体设备", "setting__play_mediaDevice_title": "选择声音输出的媒体设备",
"setting__play_media_device_tip": "此功能与音频可视化功能冲突,你已开启音频可视化,此设置暂不可用,请先去播放详情页关闭音频可视化 并 重启软件后,再来修改此设置。", "setting__play_media_device_error_tip": "此功能与音频可视化功能冲突,你本次启动软件时已启用过音频可视化,此设置暂不可用,请 重启 软件后,再来修改此设置。",
"setting__play_media_device_tip": "此功能与音频可视化功能冲突,两者无法同时启用,是否将音频可视化关闭 并 应用所选音频输出设置?",
"setting__play_quality": "优先播放320K品质的歌曲如果支持", "setting__play_quality": "优先播放320K品质的歌曲如果支持",
"setting__play_save_play_time": "记住播放进度", "setting__play_save_play_time": "记住播放进度",
"setting__play_task_bar": "在任务栏上显示当前歌曲播放进度", "setting__play_task_bar": "在任务栏上显示当前歌曲播放进度",

View File

@ -341,7 +341,8 @@
"setting__play_mediaDevice": "音頻輸出", "setting__play_mediaDevice": "音頻輸出",
"setting__play_mediaDevice_remove_stop_play": "當前的聲音輸出設備被改變時暫停播放歌曲", "setting__play_mediaDevice_remove_stop_play": "當前的聲音輸出設備被改變時暫停播放歌曲",
"setting__play_mediaDevice_title": "選擇聲音輸出的媒體設備", "setting__play_mediaDevice_title": "選擇聲音輸出的媒體設備",
"setting__play_media_device_tip": "此功能與音頻可視化功能衝突,你已開啟音頻可視化,此設置暫不可用,請先去播放詳情頁關閉音頻可視化 並 重啟軟件後,再來修改此設置。", "setting__play_media_device_error_tip": "此功能與音頻可視化功能衝突,你本次啟動軟件時已啟用過音頻可視化,此設置暫不可用,請 重啟 軟件後,再來修改此設置。",
"setting__play_media_device_tip": "此功能與音頻可視化功能衝突,兩者無法同時啟用,是否將音頻可視化關閉 並 應用所選音頻輸出設置?",
"setting__play_quality": "優先播放320K品質的歌曲如果支持", "setting__play_quality": "優先播放320K品質的歌曲如果支持",
"setting__play_save_play_time": "記住播放進度", "setting__play_save_play_time": "記住播放進度",
"setting__play_task_bar": "在任務欄上顯示當前歌曲播放進度", "setting__play_task_bar": "在任務欄上顯示當前歌曲播放進度",

View File

@ -21,6 +21,8 @@ export const getAnalyser = () => {
return analyser return analyser
} }
export const hasInitedAnalyser = () => audioContext != null
export const setResource = src => { export const setResource = src => {
if (audio) audio.src = src if (audio) audio.src = src
} }

View File

@ -24,6 +24,7 @@ dd(:tips="$t('setting__play_mediaDevice_title')")
<script> <script>
import { ref, onBeforeUnmount, watch, nextTick, useI18n } from '@renderer/utils/vueTools' import { ref, onBeforeUnmount, watch, nextTick, useI18n } from '@renderer/utils/vueTools'
import { setTaskBarProgress } from '@renderer/utils/tools' import { setTaskBarProgress } from '@renderer/utils/tools'
import { hasInitedAnalyser } from '@renderer/plugins/player'
import { dialog } from '@renderer/plugins/Dialog' import { dialog } from '@renderer/plugins/Dialog'
import { currentStting } from '../setting' import { currentStting } from '../setting'
@ -56,12 +57,24 @@ export default {
const mediaDeviceId = ref(currentStting.value.player.mediaDeviceId) const mediaDeviceId = ref(currentStting.value.player.mediaDeviceId)
const handleMediaDeviceIdChnage = async() => { const handleMediaDeviceIdChnage = async() => {
if (currentStting.value.player.audioVisualization) { if (hasInitedAnalyser()) {
await dialog({ await dialog({
message: t('setting__play_media_device_tip'), message: t('setting__play_media_device_error_tip'),
confirmButtonText: t('alert_button_text'), confirmButtonText: t('alert_button_text'),
}) })
mediaDeviceId.value = currentStting.value.player.mediaDeviceId mediaDeviceId.value = currentStting.value.player.mediaDeviceId
} else if (currentStting.value.player.audioVisualization) {
const confirm = await dialog.confirm({
message: t('setting__play_media_device_tip'),
cancelButtonText: t('cancel_button_text'),
confirmButtonText: t('confirm_button_text'),
})
if (confirm) {
currentStting.value.player.audioVisualization = false
currentStting.value.player.mediaDeviceId = mediaDeviceId.value
} else {
mediaDeviceId.value = currentStting.value.player.mediaDeviceId
}
} else { } else {
currentStting.value.player.mediaDeviceId = mediaDeviceId.value currentStting.value.player.mediaDeviceId = mediaDeviceId.value
} }