mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-04-14 23:11:00 +08:00
🔧 fix: 优化音频服务和EQ设置的跨平台兼容性
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user