🔧 fix: 优化音频服务和EQ设置的跨平台兼容性

This commit is contained in:
alger
2025-03-08 21:27:05 +08:00
parent 0b409f38d6
commit ccc59ea893
4 changed files with 8 additions and 16 deletions

View File

@@ -1,18 +1,7 @@
import { Howl, Howler } from 'howler';
import type { SongResult } from '@/type/music';
// 使用下划线前缀表示允许未使用的变量
interface _Window {
webkitAudioContext: typeof AudioContext;
}
// 使用下划线前缀表示允许未使用的变量
interface _HowlSound {
node: HTMLMediaElement & {
audioSource?: MediaElementAudioSourceNode;
};
}
import { isElectron } from '@/utils'; // 导入isElectron常量
class AudioService {
private currentSound: Howl | null = null;
@@ -248,6 +237,11 @@ class AudioService {
private async setupEQ(sound: Howl) {
try {
if (!isElectron) {
console.log('Web环境中跳过EQ设置避免CORS问题');
this.bypass = true;
return;
}
const howl = sound as any;
// eslint-disable-next-line no-underscore-dangle
const audioNode = howl._sounds?.[0]?._node;

View File

@@ -25,8 +25,6 @@ export class EQService {
private gainNode: GainNode | null = null;
private howlInstance: Howl | null = null;
private bypass = false;
// 预设频率
@@ -80,7 +78,6 @@ export class EQService {
// 创建新的处理链
this.tuna = new Tuna(this.context);
this.howlInstance = howl;
// 创建/复用源节点
if (!sound._node.destination) {
@@ -180,7 +177,6 @@ export class EQService {
this.source = null;
this.equalizer = null;
this.gainNode = null;
this.howlInstance = null;
} catch (error) {
console.error('资源清理失败:', error);
}