Javascript 我只想创建一个音频播放器实例

Javascript 我只想创建一个音频播放器实例,javascript,Javascript,我用embed标签制作了一个播放列表。每次单击列表中的音频时都会生成播放器。当您收听所选文件,然后按列表中的其他文件时,播放机将被删除,并显示一个新播放机 然而,相反,我只想显示一个播放器,并重用它 if (agent.indexOf("chrome") != -1 || agent.indexOf("opera") != -1) { var audio = document.crea

我用
embed
标签制作了一个播放列表。每次单击列表中的音频时都会生成播放器。当您收听所选文件,然后按列表中的其他文件时,播放机将被删除,并显示一个新播放机

然而,相反,我只想显示一个播放器,并重用它

            if (agent.indexOf("chrome") != -1 || agent.indexOf("opera") != -1) {                            
                var audio = document.createElement('audio');
                audio.setAttribute('id', 'audio'); 
                audio.type = 'audio/wav';
                audio.src = files[current];
                audio.autoplay = true;

                a.setAttribute('onclick', 'playlistClick(0)');
                a2.setAttribute('onclick', 'playlistClick(1)');
                a3.setAttribute('onclick', 'playlistClick(2)');

                bottom.appendChild(pop_tit01);
                bottom.appendChild(audio);
                bottom.appendChild(mp3_player);
                bottom.appendChild(re_txt);

            } else {                                        
                var pop_tit01 = document.createElement('dl');
                pop_tit01.setAttribute('class', 'pop_tit01');

                var dt = document.createElement('dt');

                var img = document.createElement('img');
                img.setAttribute('src', 'images/img/sample_img05.jpg');

                var dd = document.createElement('dd');

                var strong = document.createElement('strong');
                var str = document.createTextNode("default");
                var strdd = document.createTextNode("click list");

                //top
                dt.appendChild(img);
                strong.appendChild(str);
                dd.appendChild(strong); 
                dd.appendChild(strdd);

                //top image             
                pop_tit01.appendChild(dt);
                pop_tit01.appendChild(dd);  

                bottom.appendChild(pop_tit01);

                a.setAttribute('onclick', 'playlistclick(0)');
                a2.setAttribute('onclick', 'playlistclick(1)');
                a3.setAttribute('onclick', 'playlistclick(2)');

                //bottom.appendChild(audio);
                bottom.appendChild(re_txt);
            }

            function playlistclick(src) {
                 if (!audio) {
                        audio = document.createElement('embed');
                        audio.setAttribute('id', 'audio');
                        audio.height = "50";
                        audio.width = "400";
                        audio.controls = false;

                        bottom.insertBefore(audio, re_txt);
                      }             
            }

每次单击其中一个播放列表时,您都在创建一个新的音频播放器,而不是重复使用旧的播放列表

而不是

function playlistclick(src) {
  var audio = document.createElement('embed');
  audio.setAttribute('id', 'audio');
  audio.height = "50";
  audio.width = "400";
  audio.controls = false;

  bottom.insertBefore(audio, re_txt);
  ...
}
也许可以重复使用音频播放器

var audio;

function playlistclick(src) {
  if (!audio) {
    audio = document.createElement('embed');
    audio.setAttribute('id', 'audio');
    audio.height = "50";
    audio.width = "400";
    audio.controls = false;

    bottom.insertBefore(audio, re_txt);
  }
  ...
}

我想你错过了一些代码你是说你想要这个玩家的一个实例吗?我对“我希望有一个新的球员出现”和“我们只想让其中一个球员出现”有点困惑,因为它们听起来像是对立的…?我只想让其中一个球员出现。但是,播放器一直在运行。@takm看起来像它-这些函数的起点在哪里?当我选择一个列表时。”播放列表单击(0)或“播放列表单击(1)”或“播放列表单击(2)”以修改再次引发的源。@takm,我不理解您的评论。请你重新措辞好吗?修改来源。请再看一遍