javascript - 我将如何为每个项目实现一组关于数组的指令?
问题描述
我不知道该怎么说,但我有一系列歌曲,我需要播放它们,但在数组完成后,它需要循环。我需要它看起来像这样:
let playlist = [
{
name: "value"
},
{
name: "value"
}
]
function myFunc() {
console.log(playlist[0]); // Log the first song
console.log(playlist[1]); // After the first song finishes playing log this song
// Once finished with this, repeat again.
}
它基本上是在播放一个播放列表,并将其设置为重复。谢谢!
解决方案
让我们试试这个,让我知道:
let playlist = [
{
name: "value",
src: "song.wave",
},
{
name: "value",
src: "sg.wave",
}
];
function getDuration(src){
var music = new Audio(src);
music.addEventListener('loadeddata', () => {
let duration = music.duration;
return duration;
});
}
function playThePlaylist(playlist) {
let srcSongs = playlist.map(song => song.src);
let counterSongsPlayed = 0;
var durationSong = getDuration(song);
song.addEventListener('loadeddata', () => {
setInterval(function(){
if(durationSong == song.currentTime || counterSongsPlayed == 0){
var song = new Audio(srcSongs[counterSongsPlayed]);
song.play();
counterSongsPlayed++;
}
if(counterSongsPlayed > srcSongs.length)
counterSongsPlayed = 0;
}, 1000);
});
}
推荐阅读
- python - 仅允许以特定顺序调用链式方法
- php - 如果我的 lockForUpdate 返回一个空集,我是否需要回滚/提交?
- python - 通过 pip 安装 PyGObject 时文件 msvc_recommended_pragmas.h 丢失
- gcc - 交叉复制到嵌入式 Linux ARM 设备时,使用最新的 GCC 以较旧版本的 libstdc++ 为目标
- javascript - 我必须在 javascript 中添加什么才能使它成为我的样子
- python - 在 pandas 上合并:在无法匹配时减少合并变量的集合
- azure - 如何使用 jenkins 和 TerraForm 将 React 应用程序(github 上的代码)部署到 Azure WebApp
- python - Matplotlib.pyplot.eventplot:在事件图中使用颜色
- python - TensorFlow Federated Compression:如何实现在 TFF 的 build_federated_averaging_process 中使用的有状态编码器?
- javascript - 脚本标签的动态变化不反映页面的内容