mirror of
https://github.com/qier222/YesPlayMusic.git
synced 2025-02-10 18:44:58 +08:00
fix output switching outside electron
This commit is contained in:
parent
aaa68c5808
commit
bcd05803e2
|
@ -13,6 +13,7 @@ const i18n = new VueI18n({
|
||||||
en,
|
en,
|
||||||
"zh-CN": zhCN,
|
"zh-CN": zhCN,
|
||||||
},
|
},
|
||||||
|
silentTranslationWarn: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default i18n;
|
export default i18n;
|
||||||
|
|
|
@ -119,6 +119,8 @@ export default {
|
||||||
lossless: "Lossless",
|
lossless: "Lossless",
|
||||||
},
|
},
|
||||||
deviceSelector: "Audio Output Device",
|
deviceSelector: "Audio Output Device",
|
||||||
|
permissionDenied: "Microphone Permission Denied",
|
||||||
|
permissionRequired: "Microphone Permission Required",
|
||||||
appearance: {
|
appearance: {
|
||||||
text: "Appearance",
|
text: "Appearance",
|
||||||
auto: "Auto",
|
auto: "Auto",
|
||||||
|
|
|
@ -120,6 +120,8 @@ export default {
|
||||||
lossless: "无损",
|
lossless: "无损",
|
||||||
},
|
},
|
||||||
deviceSelector: "音频输出设备",
|
deviceSelector: "音频输出设备",
|
||||||
|
permissionDenied: "无麦克风权限",
|
||||||
|
permissionRequired: "需要麦克风权限",
|
||||||
appearance: {
|
appearance: {
|
||||||
text: "外观",
|
text: "外观",
|
||||||
auto: "自动",
|
auto: "自动",
|
||||||
|
|
|
@ -79,14 +79,14 @@
|
||||||
<div class="title"> {{ $t("settings.deviceSelector") }} </div>
|
<div class="title"> {{ $t("settings.deviceSelector") }} </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<select v-model="outputDevice">
|
<select v-model="outputDevice" :disabled="withoutAudioPriviledge">
|
||||||
<option
|
<option
|
||||||
v-for="device in allOutputDevices"
|
v-for="device in allOutputDevices"
|
||||||
:key="device.deviceId"
|
:key="device.deviceId"
|
||||||
:value="device.deviceId"
|
:value="device.deviceId"
|
||||||
:selected="device.deviceId == outputDevice"
|
:selected="device.deviceId == outputDevice"
|
||||||
>
|
>
|
||||||
{{ device.label }}
|
{{ $t(device.label) }}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -244,7 +244,11 @@ export default {
|
||||||
size: "0KB",
|
size: "0KB",
|
||||||
length: 0,
|
length: 0,
|
||||||
},
|
},
|
||||||
allOutputDevices: [],
|
allOutputDevices: [{
|
||||||
|
deviceId: "default",
|
||||||
|
label: "settings.permissionRequired"
|
||||||
|
}],
|
||||||
|
withoutAudioPriviledge: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -290,7 +294,7 @@ export default {
|
||||||
},
|
},
|
||||||
outputDevice: {
|
outputDevice: {
|
||||||
get() {
|
get() {
|
||||||
if (this.allOutputDevices.length == 0) this.getAllOutputDevices(); // Ensure devices loaded before get
|
if (this.withoutAudioPriviledge === true) this.getAllOutputDevices();
|
||||||
const isValidDevice = this.allOutputDevices.find(
|
const isValidDevice = this.allOutputDevices.find(
|
||||||
(device) => device.deviceId === this.settings.outputDevice
|
(device) => device.deviceId === this.settings.outputDevice
|
||||||
);
|
);
|
||||||
|
@ -395,14 +399,25 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getAllOutputDevices() {
|
getAllOutputDevices() {
|
||||||
return navigator.mediaDevices
|
navigator.mediaDevices.
|
||||||
.enumerateDevices()
|
getUserMedia({ audio: true })
|
||||||
.then(
|
.then(() => {
|
||||||
(devices) =>
|
this.withoutAudioPriviledge = false;
|
||||||
(this.allOutputDevices = devices.filter(
|
navigator.mediaDevices
|
||||||
(device) => device.kind == "audiooutput"
|
.enumerateDevices()
|
||||||
))
|
.then(
|
||||||
);
|
(devices) =>
|
||||||
|
(this.allOutputDevices = devices.filter(
|
||||||
|
(device) => device.kind == "audiooutput"
|
||||||
|
))
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.allOutputDevices = [{
|
||||||
|
deviceId: "default",
|
||||||
|
label: "settings.permissionDenied",
|
||||||
|
}];
|
||||||
|
})
|
||||||
},
|
},
|
||||||
logout() {
|
logout() {
|
||||||
doLogout();
|
doLogout();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user