音频结束后隐藏按钮

时间:2016-06-29 07:00:26

标签: javascript angularjs audio

我想在音频文件完成后立即隐藏暂停按钮。 我不知道为什么这段代码不起作用。

播放按钮开始播放。然后当音频播放时,音频按钮变为暂停按钮。但音频结束后暂停按钮仍然存在。

我的错是什么?

THREE.WebGLClipping

控制器:

<audio id="audio">
  <source src="../audio/audio.mp3" type="audio/mpeg">
</audio>
<img ng-click="playAudio()" src="../audio/play.jpg" alt="" ng-hide="!pause">
<img ng-click="pauseAudio()" src="../audio/pause.jpg" alt="" ng-hide="pause">

2 个答案:

答案 0 :(得分:2)

  

$apply()用于从角度框架外部以角度执行表达式。 (例如,来自浏览器DOM eventssetTimeoutXHR或第三方库)。因为我们正在调用角度框架,所以我们需要执行scope life cycle exception handlingexecuting watches的正确VideoElement.onended

Angular的上下文中未调用

model。如果您想更改angular-context之外的$apply(),则可以通过手动调用Angular来通知有关更改的角度。

这就像告诉models您正在更改某些watchers,它应该触发vid.onended = function() { $scope.$apply(function() { console.log('Here'); $scope.pause = true; }); }; ,以便您的更改正确传播。 Reference

Kurskode/Gjennomføringer|Kursnavn/Gjennomføringnavn|[ ]Valgt 
[-}Kurs1|Kursnavn1|
[-]Kurs2|Kursnavn2|
    [-]kurs21|kursnavn21|
      [-]Gjennomføringer1|Gjennomføringnavn1|[^]
~Kurs3| Kursnavn3|
~~kurs32|Kursnavn32|
~~kurs33|Kursnavn333|
~~~kurs333|kurs333navn|[]
~~~~Gjennomføring2|Gjennomføringnavn2|[]
~~~~Gjennomføring3|Gjennomføringnavn3|[]

答案 1 :(得分:1)

你可以尝试:

  .controller('AudioCtrl', function($scope, $http, $timeout) {

  var vid = document.getElementById("audio");
  vid.onended = function() {
    $timeout(function(){
       $scope.pause = true;
    }, 0);
  };