我想在音频文件完成后立即隐藏暂停按钮。 我不知道为什么这段代码不起作用。
播放按钮开始播放。然后当音频播放时,音频按钮变为暂停按钮。但音频结束后暂停按钮仍然存在。
我的错是什么?
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">
答案 0 :(得分:2)
在
$apply()
用于从角度框架外部以角度执行表达式。 (例如,来自浏览器DOM events
,setTimeout
,XHR
或第三方库)。因为我们正在调用角度框架,所以我们需要执行scope life cycle
exception handling
,executing 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);
};