如何暂停/停止播放音频并替换为新的音频文件
如何暂停/停止播放音频并替换为新的音频文件
当用户点击按钮时,从音频文件数组中播放音频文件(约为2秒片段),这个功能很好。然而,如果用户重复点击按钮,音频文件会开始互相重叠播放。理想情况下,我希望停止/暂停之前的音频文件,然后播放新的音频文件。以下是我尝试的方法,但都没有成功:\n
$scope.sounder=function(){ $scope.rs=$scope.diff[$scope.workout_index].audiorep; $scope.ms=$scope.diff[$scope.workout_index].audiomove; //var movesound = new Audio ($scope.ms); //ar repsound = new Audio ($scope.rs); var movesound = new Media($rootScope.getMediaURL($scope.ms)); var repsound = new Media($rootScope.getMediaURL($scope.rs)); if($scope.muter==0){ movesound.pause();//无效 movesound.stop();//停止所有音频播放,所以没有任何音频播放 $timeout(function() { movesound.play(); }, 1000); $timeout(function() { repsound.play(); }, 3000); } if($scope.muter==1){ console.log("Rachel已被静音"); return; } }
问题的原因是需要在播放音频时暂停/停止播放并替换为新的音频文件。解决方法是使用JavaScript来控制音频播放和替换。
首先,在HTML中添加音频元素并设置其id为"myAudio",并指定音频文件的源文件和类型。
然后,使用JavaScript来添加功能。通过document.getElementById("myAudio")获取音频元素,并定义playAud()和pauseAud()函数来控制音频的播放和暂停。使用myFunction()函数来替换音频文件,根据浏览器是否支持指定类型的音频文件来选择不同的源文件。最后,调用aud.load()方法重新加载音频。
如果需要进一步了解如何使用JavaScript改变音频源文件,请参考提供的链接。
需要注意的是,如果需要使用AngularJS,可以使用类似的方法来实现相同的功能。但需要考虑到AngularJS在应用中的其他方面的使用。
参考链接提供了关于HTML音频视频DOM的更多属性和函数的信息。