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

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`包的打包
- 新增所选音频输出设备被移除时是否暂停播放的设置,默认关闭
- 新增当前音频输出设备改变时是否暂停播放的设置,默认关闭
### 修复

View File

@ -620,27 +620,44 @@ export default {
},
async setMediaDevice() {
let mediaDeviceId = this.setting.player.mediaDeviceId
if (mediaDeviceId != 'default') {
const devices = await navigator.mediaDevices.enumerateDevices()
let device = devices.find(device => device.deviceId === mediaDeviceId)
mediaDeviceId = device ? device.deviceId : 'default'
let label = this.prevDeviceLabel
const devices = await navigator.mediaDevices.enumerateDevices()
let device = devices.find(device => device.deviceId === mediaDeviceId)
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)
this.audio.setSinkId(mediaDeviceId).catch(err => {
console.log(err)
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() {
let mediaDeviceId = this.setting.player.mediaDeviceId
const devices = await navigator.mediaDevices.enumerateDevices()
let device = devices.find(device => device.deviceId === mediaDeviceId)
this.handleDeviceChangeStopPlay(devices, device, mediaDeviceId)
if (device) return
// console.log(device)
this.setMediaDeviceId('default')
console.log(this.setting.player.isMediaDeviceRemovedStopPlay, this.isPlay)
if (this.setting.player.isMediaDeviceRemovedStopPlay && this.isPlay) this.togglePlay()
},
handlePlayDetailAction({ type, data }) {
switch (type) {

View File

@ -38,8 +38,8 @@
"play_task_bar": "任务栏播放进度条",
"play_mediaDevice_title": "选择声音输出的媒体设备",
"play_mediaDevice": "音频输出",
"play_mediaDevice_remove_stop_play": "所选音频输出设备被移除时是否暂停播放",
"play_mediaDevice_remove_stop_play_title": "所选的声音输出设备被移除时是否暂停播放歌曲",
"play_mediaDevice_remove_stop_play": "音频输出设备被改变时是否暂停播放",
"play_mediaDevice_remove_stop_play_title": "当前的声音输出设备被改变时是否暂停播放歌曲",
"search": "搜索设置",
"search_hot_title": "是否显示热门搜索",

View File

@ -37,8 +37,8 @@
"play_task_bar": "任務欄播放進度條",
"play_mediaDevice_title": "選擇聲音輸出的媒體設備",
"play_mediaDevice": "音頻輸出",
"play_mediaDevice_remove_stop_play": "所選音頻輸出設備被移除時是否暫停播放",
"play_mediaDevice_remove_stop_play_title": "所選的聲音輸出設備被移除時是否暫停播放歌曲",
"play_mediaDevice_remove_stop_play": "音頻輸出設備被改變時是否暫停播放",
"play_mediaDevice_remove_stop_play_title": "當前的聲音輸出設備被改變時是否暫停播放歌曲",
"search": "搜索設置",
"search_hot_title": "是否顯示熱門搜索",
"search_hot": "熱門搜索",

View File

@ -38,8 +38,8 @@
"play_task_bar": "Taskbar play progress bar",
"play_mediaDevice_title": "Select a media device for 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_title": "Whether to pause the song when the selected sound 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 current sound output device is changed",
"search": "Search",
"search_hot_title": "Select whether to show popular searches",