|
@@ -1,6 +1,7 @@
|
|
|
+import {backURL} from "../actions";
|
|
|
+import { select, put, takeEvery } from "redux-saga/effects";
|
|
|
import {store} from "./store";
|
|
|
-import {actionPromise} from "./promiseReducer";
|
|
|
-import {backURL, gql} from "../actions";
|
|
|
+
|
|
|
|
|
|
export const playerReducer = (
|
|
|
state = {},
|
|
@@ -55,55 +56,59 @@ export const playerReducer = (
|
|
|
};
|
|
|
|
|
|
|
|
|
-
|
|
|
const audio = new Audio()
|
|
|
|
|
|
|
|
|
-
|
|
|
export const actionTrackPlay = (trackIndex) =>
|
|
|
- async (dispatch,getState) => {
|
|
|
- let {player:{playlistIndex,playlist}} = getState()
|
|
|
-
|
|
|
- if (playlistIndex !== trackIndex) {
|
|
|
- audio.src = backURL + '/'+ playlist.tracks[trackIndex].url
|
|
|
- await audio.load()
|
|
|
- audio.ondurationchange = function(){actionSetDuration()}
|
|
|
- audio.ontimeupdate = function(){actionTrackCurrentTime()}
|
|
|
- }
|
|
|
- await audio.play()
|
|
|
- await console.log(playlist,'uuuuu')
|
|
|
- await dispatch({type:"TRACK_PLAY",isPlaying:true,isPaused:false,trackIndex})
|
|
|
- }
|
|
|
-
|
|
|
+ ({type:'ACTION_TRACK_PLAY', trackIndex})
|
|
|
+export function* trackPlayWorker (action) {
|
|
|
+ let {trackIndex} = action
|
|
|
+ let {player:{playlist}} = yield select ()
|
|
|
+ // if (playlistIndex !== trackIndex) {
|
|
|
+ audio.src = backURL + '/'+ playlist[trackIndex].url
|
|
|
+ audio.load()
|
|
|
+ audio.ondurationchange = function(){actionSetDuration()}
|
|
|
+ audio.ontimeupdate = function(){actionTrackCurrentTime()}
|
|
|
+ // }
|
|
|
+ yield audio.play()
|
|
|
+ console.log(trackIndex,'uuuuu')
|
|
|
+ yield put({type:"TRACK_PLAY",isPlaying:true,isPaused:false,trackIndex})
|
|
|
+}
|
|
|
+export function* trackPlayWatcher() {
|
|
|
+ yield takeEvery ('ACTION_TRACK_PLAY',trackPlayWorker)
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
-// export const actionTrackPlay = (trackIndex) =>
|
|
|
-// async (dispatch, getState) => {
|
|
|
-// let {player} = getState ()
|
|
|
-// let url = player.playlist[trackIndex]?.url
|
|
|
-// let audioSrc = backURL + '/'+ url
|
|
|
-// audio.src = audioSrc
|
|
|
-// audio.load()
|
|
|
-// console.log(audioSrc,'uuuuu')
|
|
|
-// audio.ondurationchange = function(){actionSetDuration()}
|
|
|
-// audio.ontimeupdate = function(){actionTrackCurrentTime()}
|
|
|
-// audio.play()
|
|
|
-// await dispatch({type:"TRACK_PLAY",isPlaying:true,isPaused:false})
|
|
|
-// }
|
|
|
|
|
|
|
|
|
+export const actionTrackStop = () =>
|
|
|
+ ({type: 'ACTION_TRACK_STOP'})
|
|
|
|
|
|
-export const actionTrackStop = () => {
|
|
|
+export function* trackStopWorker () {
|
|
|
audio.pause()
|
|
|
- store.dispatch({type:"TRACK_STOP",isPlaying:false,isPaused:true})
|
|
|
+ yield put({type:"TRACK_STOP",isPlaying:false,isPaused:true})
|
|
|
}
|
|
|
+ export function* trackStopWatcher() {
|
|
|
+ yield takeEvery ('ACTION_TRACK_STOP',trackStopWorker)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
-export const actionTrackVolume = (e) => {
|
|
|
+export const actionTrackVolume = (e) =>
|
|
|
+ ({type:'ACTION_TRACK_VOLUME', e})
|
|
|
+export function* trackVolumeWorker (action) {
|
|
|
+ let {e} = action
|
|
|
audio.volume = e
|
|
|
- store.dispatch({type:"TRACK_VOLUME", volume:e})
|
|
|
+ yield put({type:"TRACK_VOLUME", volume:e})
|
|
|
}
|
|
|
+export function* trackVolumeWatcher() {
|
|
|
+ yield takeEvery ('ACTION_TRACK_VOLUME',trackVolumeWorker)
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
export const actionSetDuration = () => {
|
|
@@ -116,9 +121,51 @@ export const actionTrackCurrentTime = () => {
|
|
|
store.dispatch({type:"TRACK_CURRENT_TIME", currentTime:e})
|
|
|
}
|
|
|
|
|
|
-export const actionSetPlaylist = (playlist,trackIndex) => {
|
|
|
- store.dispatch({type:"SET_PLAYLIST",playlist:playlist})
|
|
|
- actionTrackPlay(trackIndex)
|
|
|
- }
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+export const actionSetPlaylist = (playlist,trackIndex) =>
|
|
|
+ ({type:'ACTION_SET_PLAYLIST', playlist,trackIndex})
|
|
|
+
|
|
|
+export function* setPlaylistWorker(action) {
|
|
|
+ let {playlist, trackIndex} = action
|
|
|
+ console.log (playlist,'trackplay')
|
|
|
+ yield put ({type:"SET_PLAYLIST", playlist:playlist})
|
|
|
+ yield put (actionTrackPlay(trackIndex))
|
|
|
+}
|
|
|
+
|
|
|
+export function* setPlaylistWatcher() {
|
|
|
+ yield takeEvery ('ACTION_SET_PLAYLIST',setPlaylistWorker)
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// export const actionSetDuration = () =>
|
|
|
+// ({type:'ACTION_TRACK_DURATION'})
|
|
|
+//
|
|
|
+// export function* setDurationWorker () {
|
|
|
+// let e = audio.duration
|
|
|
+// yield put({type:"TRACK_DURATION",duration:e})
|
|
|
+// }
|
|
|
+//
|
|
|
+// export function* setDurationWatcher() {
|
|
|
+// yield takeEvery ('ACTION_TRACK_DURATION',setDurationWorker)
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// export const actionTrackCurrentTime = () =>
|
|
|
+// ({type:'ACTION_TRACK_CURRENT_TIME'})
|
|
|
+// export function* trackCurrentTimeWorker () {
|
|
|
+// let e = audio.currentTime
|
|
|
+// yield put({type:"TRACK_CURRENT_TIME", currentTime:e})
|
|
|
+// }
|
|
|
+// export function* trackCurrentTimeWatcher() {
|
|
|
+// yield takeEvery ('ACTION_TRACK_CURRENT_TIME', trackCurrentTimeWorker)
|
|
|
+// }
|