Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我试图一个接一个地播放mp3文件(一个作为介绍),但它赢了';不行。我该怎么做?_Javascript_Html_Audio - Fatal编程技术网

Javascript 我试图一个接一个地播放mp3文件(一个作为介绍),但它赢了';不行。我该怎么做?

Javascript 我试图一个接一个地播放mp3文件(一个作为介绍),但它赢了';不行。我该怎么做?,javascript,html,audio,Javascript,Html,Audio,我正在尝试使用mp3文件的介绍音。播放介绍后,应开始播放原始曲目。我的意思是,最初的mp3会在介绍结束后播放。我有这个: <script type="text/javascript" src="js/jquery.min.js"></script> <audio id='top' onended="playOrg();" preload='none' src='http://www.sounddogs.com/previews/59/mp3/607322_SOUND

我正在尝试使用mp3文件的介绍音。播放介绍后,应开始播放原始曲目。我的意思是,最初的mp3会在介绍结束后播放。我有这个:

<script type="text/javascript" src="js/jquery.min.js"></script>
<audio id='top' onended="playOrg();" preload='none' src='http://www.sounddogs.com/previews/59/mp3/607322_SOUNDDOGS__th.mp3' type='audio/mpeg'> </audio>
<a href='#' class='btn' id='audioControl'> START </a>

这里是javascript部分:

<script type="text/javascript">

var yourAudio = document.getElementById('top');
var ctrl = document.getElementById('audioControl');

ctrl.onclick = function () {
    var pause = ctrl.innerHTML === 'STOP';
    $('.btn').html('START');
    $('audio').trigger('pause');
    ctrl.innerHTML = pause ? 'START' : 'STOP';
    var method = pause ? 'pause' : 'play';
    yourAudio [method]();
    return false; };

function playOrg(){                   
  yourAudio.setAttribute('onended','orgPlayed()');
  yourAudio.src='http://www.sounddogs.com/sound-effects/59/mp3/606540_SOUNDDOGS__sf.mp3';
  yourAudio.play();
  console.log('playOrg()');
}

function orgPlayed(){                   
  yourAudio.setAttribute('onended','playOrg()');
  yourAudio.src='http://www.sounddogs.com/previews/59/mp3/607322_SOUNDDOGS__th.mp3';
  yourAudio.pause();
  yourAudio.currentTime = 0;
  console.log('orgPlayed()');
}

</script>

var yourAudio=document.getElementById('top');
var ctrl=document.getElementById('audioControl');
ctrl.onclick=函数(){
var pause=ctrl.innerHTML=='STOP';
$('.btn').html('START');
$('audio')。触发器('pause');
ctrl.innerHTML=暂停?'START':'STOP';
var方法=暂停?“暂停”:“播放”;
你的音频[方法]();
返回false;};
函数playOrg(){
yourAudio.setAttribute('oned','orgPlayed()');
yourAudio.src='0http://www.sounddogs.com/sound-effects/59/mp3/606540_SOUNDDOGS__sf.mp3';
yourAudio.play();
log('playOrg()');
}
函数{
yourAudio.setAttribute('oned','playOrg()');
yourAudio.src='0http://www.sounddogs.com/previews/59/mp3/607322_SOUNDDOGS__th.mp3';
暂停();
yourAudio.currentTime=0;
log('orgPlayed()');
}
当我按下开始键时,文件播放,最后它调用playOrg()函数,该函数应更改一些属性并播放原始曲目。然后第二个文件应该播放,在它的结尾,这次应该调用orgPlayed()函数,并设置属性,以便它可以进行另一个播放

因此,我想在网站上使用我的所有曲目介绍曲目。但我不能做到这一点。我感谢任何即将到来的帮助


PS:实际上,在我的原始代码中,所有曲目都有一个循环,但我在这里总结了它。请不要问我为什么找不到更好的mp3测试文件:)

我发现了我的问题所在。我没有用“currentTime=0”重新加载新曲目,而是尝试用“load()”重新加载,现在它可以工作了。我想有时候我们需要为这些问题睡一觉:)。谢谢大家;)


var yourAudio=document.getElementById('top');
var ctrl=document.getElementById('audioControl');
ctrl.onclick=函数(){
如果(ctrl.innerHTML=='START'){
ctrl.innerHTML='STOP';
yourAudio.play();
}else if(ctrl.innerHTML=='STOP'){
ctrl.innerHTML='START';
暂停();
}    
}
函数playOrg(){
var myPlayer=document.getElementById('top');
myPlayer.setAttribute('onended','orgPlayed()');
myPlayer.src='top10/tarkan.mp3';
myPlayer.pause();
myPlayer.load();
myPlayer.play();
}
函数{
var myPlayer=document.getElementById('top');
myPlayer.setAttribute('onended','playOrg()');
myPlayer.src='top10/intro/1.mp3';
myPlayer.pause();
myPlayer.load();
ctrl.innerHTML='START';
}
现在我发现了另一种解决方法。我可以使用两个音频标签,一个是介绍源,另一个是原始源。在第一个结束后,我可以使用函数或直接使用onended=“document.getElementById('top2').play();”播放第二个

我的意思是这样的:

<audio id='top1' onended="play second(with a function or directly)" preload='none' src='intro' type='audio/mpeg'> </audio>
<audio id='top2' onended="make ready for another play (with a function or directly)" preload='none' src='original' type='audio/mpeg'> </audio>
<a href='#' class='btn' id='audioControl'>START</a> 


Try
yourAudio.setAttribute('oneded',或play)第二个函数似乎暂停音频,但再也不会启动它。有没有可能是因为这个原因,它被困在暂停状态?(对不起,我是一个动手调试的人,我不擅长通过阅读代码来评估代码,所以我可能错了)我试过了,但运气不好@putvande。这里有一把小提琴,是的,李计划这样做。第二个功能将其设置为后退,并在按下按钮时为下一次播放做好准备。实际上,我不需要重新定义“top”元素,而是可以继续使用在开始时初始化的“yourAudio”。
<audio id='top1' onended="play second(with a function or directly)" preload='none' src='intro' type='audio/mpeg'> </audio>
<audio id='top2' onended="make ready for another play (with a function or directly)" preload='none' src='original' type='audio/mpeg'> </audio>
<a href='#' class='btn' id='audioControl'>START</a>