完善音频输出设置功能

pull/166/head
lyswhut 2020-03-10 12:40:47 +08:00
parent a244c6d5e3
commit 4f238f4f62
6 changed files with 551 additions and 639 deletions

1138
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -51,7 +51,7 @@
"lint:fix": "eslint --ext .js,.vue -f ./node_modules/eslint-formatter-friendly --fix src"
},
"browserslist": [
"Electron 8.0.1"
"Electron 8.1.1"
],
"engines": {
"node": ">= 12"
@ -141,27 +141,27 @@
},
"homepage": "https://github.com/lyswhut/lx-music-desktop#readme",
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/core": "^7.8.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/polyfill": "^7.8.3",
"@babel/preset-env": "^7.8.4",
"@babel/polyfill": "^7.8.7",
"@babel/preset-env": "^7.8.7",
"autoprefixer": "^9.7.4",
"babel-eslint": "^10.0.3",
"babel-loader": "^8.0.6",
"babel-minify-webpack-plugin": "^0.3.1",
"babel-preset-minify": "^0.5.1",
"browserslist": "^4.9.0",
"browserslist": "^4.9.1",
"cfonts": "^2.8.0",
"chalk": "^3.0.0",
"changelog-parser": "^2.8.0",
"copy-webpack-plugin": "^5.1.1",
"core-js": "^3.6.4",
"cos-nodejs-sdk-v5": "^2.5.14",
"cross-env": "^7.0.0",
"cos-nodejs-sdk-v5": "^2.5.20",
"cross-env": "^7.0.2",
"css-loader": "^3.4.2",
"del": "^5.1.0",
"electron": "^8.0.2",
"electron-builder": "^22.3.2",
"electron": "^8.1.1",
"electron-builder": "^22.3.6",
"electron-debug": "^3.0.1",
"electron-devtools-installer": "^2.2.4",
"eslint": "^6.8.0",
@ -195,7 +195,7 @@
"vue-loader": "^15.9.0",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.41.6",
"webpack": "^4.42.0",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3",
"webpack-hot-middleware": "^2.25.0",
@ -206,18 +206,18 @@
"dnscache": "^1.0.2",
"electron-log": "^4.0.7",
"electron-store": "^5.1.1",
"electron-updater": "^4.2.2",
"electron-updater": "^4.2.4",
"flac-metadata": "^0.1.1",
"js-htmlencode": "^0.3.0",
"lrc-file-parser": "^1.0.0",
"needle": "^2.3.2",
"node-id3": "^0.1.13",
"needle": "^2.3.3",
"node-id3": "^0.1.14",
"request": "^2.88.2",
"vue": "^2.6.11",
"vue-electron": "^1.0.6",
"vue-i18n": "^8.15.4",
"vue-i18n": "^8.15.5",
"vue-router": "^3.1.6",
"vuex": "^3.1.2",
"vuex": "^3.1.3",
"vuex-electron": "^1.0.3",
"vuex-router-sync": "^5.0.0"
}

View File

@ -3,6 +3,7 @@
- 新增多语言设置目前软件内置了简体中文、繁体中文、英语三种语言欢迎提交PR翻译更多语言
- 新增无法打开外部歌单FAQ
- 新增启动参数`search`,使用例子:`.\lx-music-desktop.exe -search="突然的自我 - 伍佰"`
- 新增音频输出设置
### 优化
@ -12,3 +13,7 @@
### 修复
- 修复歌单详情处于加载状态时无法返回的问题
### 其他
- 更新Electron到 8.1.1

View File

@ -153,7 +153,7 @@ export default {
'setting.player.togglePlayMethod'(n) {
this.audio.loop = n === 'singleLoop'
},
'setting.player.mediaDeviceName'(n) {
'setting.player.mediaDeviceId'(n) {
this.setMediaDevice()
},
list(n, o) {
@ -578,10 +578,10 @@ export default {
this.mediaBuffer.playTime = 0
},
async setMediaDevice() {
let mediaDeviceName = this.setting.player.mediaDeviceName
if (!mediaDeviceName) return
let mediaDeviceId = this.setting.player.mediaDeviceId
if (!mediaDeviceId) return
const devices = await navigator.mediaDevices.enumerateDevices()
let device = devices.find(device => device.label === mediaDeviceName)
let device = devices.find(device => device.deviceId === mediaDeviceId)
if (!device) return this.setMediaDeviceId('default')
console.log(device)
this.audio.setSinkId(device.deviceId).catch((err) => {

View File

@ -1,7 +1,7 @@
<template lang="pug">
div(:class="[$style.select, show ? $style.active : '']")
div(:class="$style.label" ref="dom_btn" @click="handleShow") {{label}}
ul(:class="$style.list")
ul.scroll(:class="$style.list")
li(v-for="item in list" :class="(itemKey ? item[itemKey] : item) == value ? $style.active : null" @click="handleClick(item)" :title="itemName ? item[itemName] : item") {{itemName ? item[itemName] : item}}
</template>
@ -121,8 +121,9 @@ export default {
transition-property: transform, opacity;
z-index: 10;
border-radius: @form-radius;
overflow: hidden;
box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
box-shadow: 0 0 4px rgba(0, 0, 0, .15);
overflow: auto;
max-height: 200px;
li {
cursor: pointer;

View File

@ -566,7 +566,7 @@ export default {
const devices = await navigator.mediaDevices.enumerateDevices()
const audioDevices = devices.filter(device => device.kind === 'audiooutput')
this.mediaDevices = audioDevices
console.log(this.mediaDevices)
// console.log(this.mediaDevices)
},
handleMediaDeviceChange(audioDevice) {
this.setMediaDeviceId(audioDevice.deviceId)