完善音频输出设备改变暂停机制

pull/277/head
lyswhut 2020-05-09 20:41:48 +08:00
parent 16903b0f5a
commit 8605f63ac6
5 changed files with 31 additions and 14 deletions

View File

@ -1,7 +1,7 @@
### 新增 ### 新增
- 新增`rpm`、`pacman`包的打包 - 新增`rpm`、`pacman`包的打包
- 新增所选音频输出设备被移除时是否暂停播放的设置,默认关闭 - 新增当前音频输出设备改变时是否暂停播放的设置,默认关闭
### 修复 ### 修复

View File

@ -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) {

View File

@ -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": "是否显示热门搜索",

View File

@ -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": "熱門搜索",

View File

@ -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",