访问Soundcloud并使用iPhone播放任何歌曲(我有一部iPhone 5s,正在使用它来测试我的Web应用程序。)。如果您锁定手机并且歌曲播放完毕,则下一首曲目将开始播放。这是我正在尝试为我的应用实现的东西。
根据我所做的研究,苹果不允许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构建我的应用程序。