Посетите Soundcloud и играйте любую песню на iPhone (у меня есть iPhone 5s, который я использую для тестирования своего веб-приложения).Если вы заблокируете телефон и песня закончится, начнется воспроизведение следующей дорожки.Это то, что я пытаюсь реализовать для своего приложения.
На основании проведенного мною исследования Apple не позволяет программам HTML5 запускаться программно.Это требует какого-то взаимодействия с пользователем, но вопрос в том, как Soundcloud это делает?
Мое приложение в настоящее время использует метод onended () HTML5, чтобы проверить, завершена ли текущая дорожка, а затем запущенаследующий.Это работает на Android и рабочем столе, но не на IOS.
вот часть кода, которая воспроизводит следующий трек для моего приложения:
this.audio.onended = () => {
this.index++;
this.audio.currentTime = 0;
axios.patch('/api/track/'+this.track.id,{album_id: this.track.album_id});
if(this.index <= (this.tracks.length - 1)){
this.track = this.tracks[this.index];
this.audio.src = this.tracks[this.index].url;
this.audio.play();
Event.$emit('setCurrentPlayingTrack', this.tracks[this.index]);
this.$store.commit('setPlayingTrack', this.tracks[this.index]);
}else{
console.log('playlist ended');
}
}
Кстати, я использую VueJs для сборки своего приложения.