스트리밍 시작하면 자동으로 녹음 시작함.
const PlayAudio=()=> {
if(Hls.isSupported()){
hls = new Hls();
hls.attachMedia(playerRef.current);
hls.on(Hls.Events.MEDIA_ATTACHED, () => {
hls.loadSource(
'소스 URL'
);
playerRef.current.play().then(()=>{
console.log("play!")
audioContext = new AudioContext();
let source = audioContext.createMediaElementSource(playerRef.current);
let stream_dest = audioContext.createMediaStreamDestination();
source.connect(stream_dest);
analyser = audioContext.createScriptProcessor(0, 1, 1);
let captureStream = stream_dest.stream
const mediaRecorder = new MediaRecorder(captureStream);
console.log("mediaRecorder",mediaRecorder)
media = mediaRecorder;
media.start();
mediaStreamSource = audioContext.createMediaStreamSource(captureStream);
console.log("mediaStreamSource",mediaStreamSource)
mediaStream = playerRef.current.captureStream();
console.log("mediaStream",mediaStream)
meter = createAudioMeter(audioContext);
mediaStreamSource.connect(meter);
mediaStreamSource.connect(analyser);
analyser.connect(audioContext.destination);
})
});
}
}
끝내는 코드
const PauseAudio=()=> {
playerRef.current.pause();
hls = null
media.ondataavailable = function (e) {
let url = URL.createObjectURL(e.data)
console.log(url);
};
mediaStream.getAudioTracks().forEach(function (track) {
track.stop();
});
media.stop();
analyser.disconnect();
mediaStreamSource.disconnect();
}
누군가에게 도움이 되었으면 좋겠다.