完善音频输出设备改变暂停机制
parent
16903b0f5a
commit
8605f63ac6
|
@ -1,7 +1,7 @@
|
||||||
### 新增
|
### 新增
|
||||||
|
|
||||||
- 新增`rpm`、`pacman`包的打包
|
- 新增`rpm`、`pacman`包的打包
|
||||||
- 新增所选音频输出设备被移除时是否暂停播放的设置,默认关闭
|
- 新增当前音频输出设备改变时是否暂停播放的设置,默认关闭
|
||||||
|
|
||||||
### 修复
|
### 修复
|
||||||
|
|
||||||
|
|
|
@ -620,27 +620,44 @@ export default {
|
||||||
},
|
},
|
||||||
async setMediaDevice() {
|
async setMediaDevice() {
|
||||||
let mediaDeviceId = this.setting.player.mediaDeviceId
|
let mediaDeviceId = this.setting.player.mediaDeviceId
|
||||||
if (mediaDeviceId != 'default') {
|
let label = this.prevDeviceLabel
|
||||||
const devices = await navigator.mediaDevices.enumerateDevices()
|
const devices = await navigator.mediaDevices.enumerateDevices()
|
||||||
let device = devices.find(device => device.deviceId === mediaDeviceId)
|
let device = devices.find(device => device.deviceId === mediaDeviceId)
|
||||||
mediaDeviceId = device ? device.deviceId : 'default'
|
if (device) {
|
||||||
|
mediaDeviceId = device.deviceId
|
||||||
|
label = device.label
|
||||||
|
} else {
|
||||||
|
mediaDeviceId = 'default'
|
||||||
|
device = devices.find(device => device.deviceId === mediaDeviceId)
|
||||||
|
if (device) label = device.label
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.prevDeviceLabel = label
|
||||||
// console.log(device)
|
// console.log(device)
|
||||||
this.audio.setSinkId(mediaDeviceId).catch(err => {
|
this.audio.setSinkId(mediaDeviceId).catch(err => {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
this.setMediaDeviceId('default')
|
this.setMediaDeviceId('default')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
handleDeviceChangeStopPlay(devices, device, mediaDeviceId) {
|
||||||
|
if (!device) device = devices.find(device => device.deviceId === 'default')
|
||||||
|
if (!device) device = { label: null }
|
||||||
|
// console.log(device)
|
||||||
|
// console.log(this.setting.player.isMediaDeviceRemovedStopPlay, this.isPlay, device.label, this.prevDeviceLabel)
|
||||||
|
if (
|
||||||
|
this.setting.player.isMediaDeviceRemovedStopPlay &&
|
||||||
|
this.isPlay &&
|
||||||
|
device.label != this.prevDeviceLabel
|
||||||
|
) this.togglePlay()
|
||||||
|
},
|
||||||
async handleMediaListChange() {
|
async handleMediaListChange() {
|
||||||
let mediaDeviceId = this.setting.player.mediaDeviceId
|
let mediaDeviceId = this.setting.player.mediaDeviceId
|
||||||
const devices = await navigator.mediaDevices.enumerateDevices()
|
const devices = await navigator.mediaDevices.enumerateDevices()
|
||||||
let device = devices.find(device => device.deviceId === mediaDeviceId)
|
let device = devices.find(device => device.deviceId === mediaDeviceId)
|
||||||
|
this.handleDeviceChangeStopPlay(devices, device, mediaDeviceId)
|
||||||
if (device) return
|
if (device) return
|
||||||
// console.log(device)
|
|
||||||
this.setMediaDeviceId('default')
|
this.setMediaDeviceId('default')
|
||||||
console.log(this.setting.player.isMediaDeviceRemovedStopPlay, this.isPlay)
|
|
||||||
if (this.setting.player.isMediaDeviceRemovedStopPlay && this.isPlay) this.togglePlay()
|
|
||||||
},
|
},
|
||||||
handlePlayDetailAction({ type, data }) {
|
handlePlayDetailAction({ type, data }) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
"play_task_bar": "任务栏播放进度条",
|
"play_task_bar": "任务栏播放进度条",
|
||||||
"play_mediaDevice_title": "选择声音输出的媒体设备",
|
"play_mediaDevice_title": "选择声音输出的媒体设备",
|
||||||
"play_mediaDevice": "音频输出",
|
"play_mediaDevice": "音频输出",
|
||||||
"play_mediaDevice_remove_stop_play": "所选音频输出设备被移除时是否暂停播放",
|
"play_mediaDevice_remove_stop_play": "音频输出设备被改变时是否暂停播放",
|
||||||
"play_mediaDevice_remove_stop_play_title": "所选的声音输出设备被移除时是否暂停播放歌曲",
|
"play_mediaDevice_remove_stop_play_title": "当前的声音输出设备被改变时是否暂停播放歌曲",
|
||||||
|
|
||||||
"search": "搜索设置",
|
"search": "搜索设置",
|
||||||
"search_hot_title": "是否显示热门搜索",
|
"search_hot_title": "是否显示热门搜索",
|
||||||
|
|
|
@ -37,8 +37,8 @@
|
||||||
"play_task_bar": "任務欄播放進度條",
|
"play_task_bar": "任務欄播放進度條",
|
||||||
"play_mediaDevice_title": "選擇聲音輸出的媒體設備",
|
"play_mediaDevice_title": "選擇聲音輸出的媒體設備",
|
||||||
"play_mediaDevice": "音頻輸出",
|
"play_mediaDevice": "音頻輸出",
|
||||||
"play_mediaDevice_remove_stop_play": "所選音頻輸出設備被移除時是否暫停播放",
|
"play_mediaDevice_remove_stop_play": "音頻輸出設備被改變時是否暫停播放",
|
||||||
"play_mediaDevice_remove_stop_play_title": "所選的聲音輸出設備被移除時是否暫停播放歌曲",
|
"play_mediaDevice_remove_stop_play_title": "當前的聲音輸出設備被改變時是否暫停播放歌曲",
|
||||||
"search": "搜索設置",
|
"search": "搜索設置",
|
||||||
"search_hot_title": "是否顯示熱門搜索",
|
"search_hot_title": "是否顯示熱門搜索",
|
||||||
"search_hot": "熱門搜索",
|
"search_hot": "熱門搜索",
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
"play_task_bar": "Taskbar play progress bar",
|
"play_task_bar": "Taskbar play progress bar",
|
||||||
"play_mediaDevice_title": "Select a media device for audio output",
|
"play_mediaDevice_title": "Select a media device for audio output",
|
||||||
"play_mediaDevice": "Audio output",
|
"play_mediaDevice": "Audio output",
|
||||||
"play_mediaDevice_remove_stop_play": "Whether to pause playback when the selected audio output device is removed",
|
"play_mediaDevice_remove_stop_play": "Whether to pause playback when the audio output device is changed",
|
||||||
"play_mediaDevice_remove_stop_play_title": "Whether to pause the song when the selected sound output device is removed",
|
"play_mediaDevice_remove_stop_play_title": "Whether to pause the song when the current sound output device is changed",
|
||||||
|
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"search_hot_title": "Select whether to show popular searches",
|
"search_hot_title": "Select whether to show popular searches",
|
||||||
|
|
Loading…
Reference in New Issue