|
@@ -2,11 +2,16 @@ import {backURL} from "../actions";
|
|
|
import { select, put, takeEvery } from "redux-saga/effects";
|
|
|
import {store} from "./store";
|
|
|
|
|
|
+import React, {useEffect, useRef, useState} from 'react';
|
|
|
+import AudioSpectrum from 'react-audio-spectrum'
|
|
|
+import {connect} from "react-redux";
|
|
|
+
|
|
|
+
|
|
|
|
|
|
export const playerReducer = (
|
|
|
state = {},
|
|
|
{type,track,isPlaying=false,isPaused,duration,
|
|
|
- playlist,playlistIndex,currentTime=0,volume=1,}) => {
|
|
|
+ playlist,playlistIndex,currentTime=0,volume=1,audio}) => {
|
|
|
|
|
|
if (type === "NEXT_TRACK") {
|
|
|
return {
|
|
@@ -38,6 +43,7 @@ export const playerReducer = (
|
|
|
...state,
|
|
|
isPlaying,
|
|
|
isPaused: !isPlaying,
|
|
|
+ audio,
|
|
|
};
|
|
|
}
|
|
|
|
|
@@ -87,7 +93,6 @@ audio.onended = () => store.dispatch (actionNextTrack())
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
const trackActions = (urlVar) => {
|
|
|
audio.src = backURL + '/'+ urlVar.url
|
|
|
audio.load()
|
|
@@ -119,7 +124,7 @@ export const actionTrackPlay = () =>
|
|
|
({type:'ACTION_TRACK_PLAY'})
|
|
|
export function* trackPlayWorker () {
|
|
|
yield audio.play()
|
|
|
- yield put({type:"TRACK_PLAY",isPlaying:true,isPaused:false})
|
|
|
+ yield put({type:"TRACK_PLAY",isPlaying:true,isPaused:false,audio:audio})
|
|
|
}
|
|
|
export function* trackPlayWatcher() {
|
|
|
yield takeEvery ('ACTION_TRACK_PLAY',trackPlayWorker)
|
|
@@ -223,32 +228,6 @@ export const actionTrackCurrentTime = (e) => {
|
|
|
}
|
|
|
|
|
|
|
|
|
-//
|
|
|
-// export const actionTrackCurrentTime = (e) =>
|
|
|
-// ({type:'CURRENT_TIME', e})
|
|
|
-//
|
|
|
-//
|
|
|
-// export function* trackCurrentTimeWorker (action) {
|
|
|
-// let {e} = action
|
|
|
-// if (e) {
|
|
|
-// audio.currentTime = e
|
|
|
-// yield put({type:"TRACK_CURRENT_TIME", currentTime:e})
|
|
|
-// } else {
|
|
|
-// e = audio.currentTime
|
|
|
-// yield put({type:"TRACK_CURRENT_TIME", currentTime:e})
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// export function* trackCurrentTimeWatcher() {
|
|
|
-// yield takeEvery('CURRENT_TIME', trackCurrentTimeWorker)
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -266,3 +245,68 @@ export function* setPlaylistWatcher() {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//
|
|
|
+// const onInputChange = (e) => {
|
|
|
+// var sound = document.getElementById('sound');
|
|
|
+// sound.src = URL.createObjectURL(e.target.files[0]);
|
|
|
+// }
|
|
|
+
|
|
|
+//
|
|
|
+// export const Visualiser = () => {
|
|
|
+//
|
|
|
+// const track = useRef(audio || {})
|
|
|
+//
|
|
|
+// useEffect(() => {
|
|
|
+// track.current = (audio|| {})
|
|
|
+// },[audio])
|
|
|
+//
|
|
|
+// // let sound = document.getElementById('sound');
|
|
|
+// const [capColor, setCapColor] = useState(' ')
|
|
|
+// const [capHeight, setCapHeight] = useState(4)
|
|
|
+// const [meterWidth, setMeterWidth] = useState(3)
|
|
|
+// const [meterCount, setMeterCount] = useState(512)
|
|
|
+// const [gap, setGap] = useState(5)
|
|
|
+// const [meterColor1, setMeterColor1] = useState('#f00')
|
|
|
+// const [meterColor2, setMeterColor2] = useState('#0C70FD')
|
|
|
+// const [meterColor3, setMeterColor3] = useState('#0CFD70')
|
|
|
+//
|
|
|
+// console.log(track.current,'111')
|
|
|
+//
|
|
|
+// return (
|
|
|
+// <div className="Visualiser">
|
|
|
+//
|
|
|
+// {/*<div style={{*/}
|
|
|
+// {/* display: 'flex',*/}
|
|
|
+// {/*}}>*/}
|
|
|
+// {/* <div className="setting-section file">*/}
|
|
|
+// {/* <input type="file" id="input" accept="audio/*" onChange={onInputChange} />*/}
|
|
|
+// {/* <audio id="sound" controls></audio>*/}
|
|
|
+// {/* </div>*/}
|
|
|
+//
|
|
|
+// {/*</div>*/}
|
|
|
+// <AudioSpectrum
|
|
|
+// id="audio-canvas"
|
|
|
+// style={{
|
|
|
+// padding: 10
|
|
|
+// }}
|
|
|
+// height={500}
|
|
|
+// width={900}
|
|
|
+// audioEle={track.current}
|
|
|
+// capColor={capColor}
|
|
|
+// capHeight={capHeight}
|
|
|
+// meterWidth={meterWidth}
|
|
|
+// meterCount={meterCount}
|
|
|
+// meterColor={[
|
|
|
+// {stop: 0, color: meterColor1},
|
|
|
+// {stop: 0.5, color: meterColor2},
|
|
|
+// {stop: 1, color: meterColor3}
|
|
|
+// ]}
|
|
|
+// gap={gap}
|
|
|
+// />
|
|
|
+// </div>
|
|
|
+// );
|
|
|
+// }
|
|
|
+//
|