Commit d4385397 authored by Andreas Heimann's avatar Andreas Heimann

fixed a desync of the song detail preview

parent 1242a555
...@@ -209,10 +209,10 @@ ...@@ -209,10 +209,10 @@
<!-- Scripts --> <!-- Scripts -->
<script src="./assets/js/init.js"></script> <script src="./assets/js/init.js"></script>
<script src="./assets/js/system.js"></script> <script src="./assets/js/system.js"></script>
<script src="./assets/js/navigation.js"></script>
<script src="./assets/js/section.startup.js"></script> <script src="./assets/js/section.startup.js"></script>
<script src="./assets/js/section.songdetail.js"></script> <script src="./assets/js/section.songdetail.js"></script>
<script src="./assets/js/download.js"></script> <script src="./assets/js/download.js"></script>
<script src="./assets/js/navigation.js"></script>
<!-- <script src="./assets/js/app.js"></script> --> <!-- <script src="./assets/js/app.js"></script> -->
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -6,4 +6,6 @@ const fs = require('fs'); ...@@ -6,4 +6,6 @@ const fs = require('fs');
const rimraf = require('rimraf'); const rimraf = require('rimraf');
const ncp = require('ncp'); const ncp = require('ncp');
const http = require('http'); const http = require('http');
const unzipper = require('unzipper'); const unzipper = require('unzipper');
\ No newline at end of file
let api = new SHAPI();
\ No newline at end of file
let api = new SHAPI();
let DOMNavigationItems = document.querySelectorAll("aside .item"); let DOMNavigationItems = document.querySelectorAll("aside .item");
let DOMSections = document.querySelectorAll("section"); let DOMSections = document.querySelectorAll("section");
...@@ -13,8 +11,7 @@ let currentPreviewAudio; ...@@ -13,8 +11,7 @@ let currentPreviewAudio;
function NavigateToSection(sectionIndex) { function NavigateToSection(sectionIndex) {
// Stop audio if playing // Stop audio if playing
if(currentPreviewAudio) SongDetailStopPreview();
currentPreviewAudio.pause();
// Navigation // Navigation
DOMNavigationItems.forEach(function(DOMNavigation) { DOMNavigationItems.forEach(function(DOMNavigation) {
...@@ -35,8 +32,7 @@ NavigateToSection(0); ...@@ -35,8 +32,7 @@ NavigateToSection(0);
function NavigateToSongDetail(songId) { function NavigateToSongDetail(songId) {
// Stop audio if playing // Stop audio if playing
if(currentPreviewAudio) SongDetailStopPreview();
currentPreviewAudio.pause();
// Navigation // Navigation
DOMNavigationItems.forEach(function(DOMNavigation) { DOMNavigationItems.forEach(function(DOMNavigation) {
......
...@@ -3,6 +3,7 @@ const DOMSongDetailActions = document.querySelector(".song-detail-actions"); ...@@ -3,6 +3,7 @@ const DOMSongDetailActions = document.querySelector(".song-detail-actions");
const DOMSongDetail = document.querySelector(".section-song-detail .song-detail"); const DOMSongDetail = document.querySelector(".section-song-detail .song-detail");
const DOMSongDetailCover = document.querySelector(".section-song-detail .song-cover"); const DOMSongDetailCover = document.querySelector(".section-song-detail .song-cover");
let isPlayingPreview = false;
const DOMButtonPreview = DOMSongDetailActions.querySelector(".button-preview"); const DOMButtonPreview = DOMSongDetailActions.querySelector(".button-preview");
...@@ -48,19 +49,29 @@ function SongDetailLoad(songId) { ...@@ -48,19 +49,29 @@ function SongDetailLoad(songId) {
} }
function SongDetailTogglePreview() { function SongDetailTogglePreview() {
if(currentPreviewAudio != undefined || currentPreviewAudio != null) { if(isPlayingPreview) {
SongDetailStopPreview();
} else {
SongDetailStartPreview();
}
}
function SongDetailStartPreview() {
currentPreviewAudio = new Audio(currentSongData.paths.ogg);
currentPreviewAudio.play();
isPlayingPreview = true;
DOMButtonPreview.innerText = "PAUSE PREVIEW";
DOMButtonPreview.classList.add("button-primary");
}
function SongDetailStopPreview() {
if(currentPreviewAudio) {
currentPreviewAudio.pause(); currentPreviewAudio.pause();
currentPreviewAudio.currentTime = 0; currentPreviewAudio.currentTime = 0;
currentPreviewAudio = null;
DOMButtonPreview.innerText = "PLAY PREVIEW";
DOMButtonPreview.classList.remove("button-primary");
} else {
currentPreviewAudio = new Audio(currentSongData.paths.ogg);
currentPreviewAudio.play();
DOMButtonPreview.innerText = "PAUSE PREVIEW";
DOMButtonPreview.classList.add("button-primary");
} }
currentPreviewAudio = null;
isPlayingPreview = false;
DOMButtonPreview.innerText = "PLAY PREVIEW";
DOMButtonPreview.classList.remove("button-primary");
} }
function SongDetailDownload() { function SongDetailDownload() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment