gpt4 book ai didi

javascript - .play() 未使用 $watch 在指令内触发

转载 作者:行者123 更新时间:2023-11-28 05:34:27 25 4
gpt4 key购买 nike

我使用 buzz 作为我的声音,并且非常熟悉它的功能。然而,我自己和导师无法弄清楚为什么我的声音文件没有在我的指令内触发。

我的指令:

(function() {
function clockTimer($interval, $window, STOP_WATCH) {

return {
templateUrl: '/templates/directives/clock_timer.html',
replace: true,
restrict: 'E',
scope: {},
link: function(scope, element, attributes) {

scope.STOP_WATCH = STOP_WATCH; //see constants in app.js
scope.startButton = 'Start Work';
scope.breakButton = 'Take Break';
scope.onBreak = false; //boolean for alternating displaying of work-time or break
var mySound = new buzz.sound("/sounds/blue.mp3", {
formats: ['mp3'],
preload: true
});

// @desc initiates holder of completed work sessions. Increments by 1 once timer hits 0
var completedWorkSessions = 0;
// @desc Holds state for $interval call
var promise;

scope.$watch('STOP_WATCH.totalWorkTime', function() {
if (scope.STOP_WATCH.totalWorkTime === 0) {
mySound.play();
console.log(mySound);
console.log("im listening");
}
});

我的观点

<section class="clock-container">
<div ng-show="!onBreak === true"> {{ STOP_WATCH.totalWorkTime | clockFormat }}
<button ng-click="startStopButton(startButton)" ng-show="!onBreak === true">{{ startButton }}</button>
</div>
<div ng-hide="onBreak === false"> {{ STOP_WATCH.totalBreakTime | clockFormat }}
<button ng-click="takeBreakButton(breakButton)">{{ breakButton }}</button>
</div>
</section>

Buzz 库包含在我的索引中,我尝试将 scope 添加到 mySound 的开头,在测试应用程序中测试了 .mp3(效果很好) ,但仍然无法播放声音。

这是我的控制台,它演示了 $watch 在它应该触发时触发:

sound {sound: audio, volume: 80}
clockTimer.js:51 im listening

有什么想法或解决方案吗?我没有任何 Controller ,并且认为我不需要一个 Controller ,因为它在控制台中成功触发了?

最佳答案

我从嗡嗡声对象中删除了formats: ['mp3'],。您可以使用格式:['mp3']、.mp3,但不能同时使用两者。

关于javascript - .play() 未使用 $watch 在指令内触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39461397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com