32 lines
717 B
TypeScript
32 lines
717 B
TypeScript
|
|
import React, { useEffect, useRef } from 'react';
|
||
|
|
|
||
|
|
interface AudioPlayerProps {
|
||
|
|
isPlaying: boolean;
|
||
|
|
enabled: boolean;
|
||
|
|
}
|
||
|
|
|
||
|
|
const AudioPlayer: React.FC<AudioPlayerProps> = ({ isPlaying, enabled }) => {
|
||
|
|
const audioRef = useRef<HTMLAudioElement>(null);
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
if (enabled && isPlaying) {
|
||
|
|
console.log("Playing audio");
|
||
|
|
audioRef.current?.play().catch((error) => {
|
||
|
|
console.error("Audio playback error:", error);
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
console.log("Pausing audio");
|
||
|
|
audioRef.current?.pause();
|
||
|
|
}
|
||
|
|
}, [isPlaying, enabled]);
|
||
|
|
|
||
|
|
return (
|
||
|
|
<audio
|
||
|
|
ref={audioRef}
|
||
|
|
src="/stream/audio.m3u8"
|
||
|
|
preload="metadata"
|
||
|
|
/>
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
export default AudioPlayer;
|