Skip to content

Commit 76196d0

Browse files
committed
add onError queue method
1 parent 3e9921a commit 76196d0

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

public/gapless.cjs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
onPlayPreviousTrack,
4343
onStartNewTrack,
4444
webAudioIsDisabled = false,
45+
onError,
4546
} = props;
4647

4748
this.props = {
@@ -50,6 +51,7 @@
5051
onPlayNextTrack,
5152
onPlayPreviousTrack,
5253
onStartNewTrack,
54+
onError,
5355
};
5456

5557
this.state = {
@@ -209,6 +211,10 @@
209211

210212
this.tracks.map((track) => track.setVolume(nextVolume));
211213
}
214+
215+
onError() {
216+
if (this.props.onError) this.props.onError();
217+
}
212218
}
213219

214220
class Track {
@@ -485,7 +491,8 @@
485491
// basic event handlers
486492
audioOnError = (e) => {
487493
this.debug('audioOnError', e);
488-
window.dispatchEvent(new CustomEvent('gapless-audio-error', { error: e }));
494+
// window.dispatchEvent(new CustomEvent('gapless-audio-error', { error: e }));
495+
this.queue.onError();
489496
};
490497

491498
onEnded(from) {

src/components/Player.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import player from '../lib/player';
99
import { durationToHHMMSS, removeLeadingZero, splitShowDate } from '../lib/utils';
1010
import Flex from './Flex';
1111
import {
12+
AlertCircle,
1213
ChevronDown,
1314
FastForwardIcon,
1415
ListMusicIcon,
@@ -29,6 +30,7 @@ const Player = ({ artistSlugsToName }: Props) => {
2930
const [volume, setVolume] = useState(
3031
(typeof localStorage !== 'undefined' && localStorage.volume) || 1
3132
);
33+
// const [hasAudioError, setHasAudioError] = useState(false);
3234

3335
const { year, month, day } = splitShowDate(playback.showDate);
3436
const { artistSlug, source } = playback;
@@ -71,16 +73,16 @@ const Player = ({ artistSlugsToName }: Props) => {
7173
localStorage.volume = Math.max(0, Math.min(1, nextVolume));
7274
};
7375

74-
useEffect(() => {
75-
const handleAudioError = (e: CustomEvent) => {
76-
console.log('Audio error detected', e);
77-
};
76+
// useEffect(() => {
77+
// const handleAudioError = () => {
78+
// setHasAudioError(true);
79+
// };
7880

79-
window.addEventListener('gapless-audio-error', handleAudioError);
80-
return () => {
81-
window.removeEventListener('gapless-audio-error', handleAudioError);
82-
};
83-
});
81+
// window.addEventListener('gapless-audio-error', handleAudioError);
82+
// return () => {
83+
// window.removeEventListener('gapless-audio-error', handleAudioError);
84+
// };
85+
// }, []);
8486

8587
return (
8688
<Flex className="content relative h-[50px] flex-1 px-2">
@@ -199,6 +201,12 @@ const Player = ({ artistSlugsToName }: Props) => {
199201
</div>
200202
</Link>
201203
)}
204+
{/* {hasAudioError && (
205+
<Flex className="items-center">
206+
<AlertCircle color="red" />
207+
<p className="m-2">Error loading audio</p>
208+
</Flex>
209+
)} */}
202210
</Flex>
203211
);
204212
};

src/lib/player.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ const player = new Gapless.Queue({
156156
}
157157
}
158158
},
159+
onError: () => {
160+
console.log('Leithen errors');
161+
},
159162
});
160163

161164
export function initGaplessPlayer(nextStore, changeURL) {

0 commit comments

Comments
 (0)