|
@@ -367,7 +367,7 @@
|
|
|
}}
|
|
|
</p>
|
|
|
</div>
|
|
|
- <p id="volume-control" v-if="!isIOS">
|
|
|
+ <p id="volume-control" v-if="!isApple">
|
|
|
<i
|
|
|
v-if="muted"
|
|
|
class="material-icons"
|
|
@@ -821,7 +821,9 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
utils,
|
|
|
- isIOS: navigator.platform.match(/iPhone|iPod|iPad/),
|
|
|
+ isApple:
|
|
|
+ navigator.platform.match(/iPhone|iPod|iPad/) ||
|
|
|
+ navigator.vendor === "Apple Computer, Inc.",
|
|
|
title: "Station",
|
|
|
loading: true,
|
|
|
exists: true,
|
|
@@ -996,6 +998,7 @@ export default {
|
|
|
if (!this.localPaused) this.resumeLocalPlayer();
|
|
|
|
|
|
if (this.currentSong) {
|
|
|
+ const currentSongId = this.currentSong._id;
|
|
|
if (this.nextSong)
|
|
|
this.setNextCurrentSong({
|
|
|
currentSong: this.nextSong,
|
|
@@ -1012,7 +1015,8 @@ export default {
|
|
|
pausedAt: 0
|
|
|
});
|
|
|
window.stationNextSongTimeout = setTimeout(() => {
|
|
|
- this.skipSong("window.stationNextSongTimeout 2");
|
|
|
+ if (!this.noSong && this.currentSong._id === currentSongId)
|
|
|
+ this.skipSong("window.stationNextSongTimeout 2");
|
|
|
}, this.getTimeRemaining());
|
|
|
}
|
|
|
});
|
|
@@ -1354,7 +1358,11 @@ export default {
|
|
|
true
|
|
|
);
|
|
|
window.stationNextSongTimeout = setTimeout(() => {
|
|
|
- this.skipSong("window.stationNextSongTimeout 1");
|
|
|
+ if (
|
|
|
+ !this.noSong &&
|
|
|
+ this.currentSong._id === currentSong._id
|
|
|
+ )
|
|
|
+ this.skipSong("window.stationNextSongTimeout 1");
|
|
|
}, this.getTimeRemaining());
|
|
|
}
|
|
|
|
|
@@ -1461,7 +1469,7 @@ export default {
|
|
|
this.playVideo();
|
|
|
|
|
|
// on ios, playback will be forcibly paused locally
|
|
|
- if (this.isIOS) {
|
|
|
+ if (this.isApple) {
|
|
|
this.updateLocalPaused(true);
|
|
|
new Toast(
|
|
|
"Please click play manually to use Musare on iOS."
|
|
@@ -1630,7 +1638,7 @@ export default {
|
|
|
!this.stationPaused &&
|
|
|
!this.localPaused &&
|
|
|
this.playerReady &&
|
|
|
- !this.isIOS
|
|
|
+ !this.isApple
|
|
|
) {
|
|
|
const timeElapsed = this.getTimeElapsed();
|
|
|
const currentPlayerTime =
|