Аудио спрайт играет только определенные роли? - PullRequest
0 голосов
/ 25 ноября 2018

Я загрузил аудиофайл в свойство объекта.Я использую его как спрайт, где в каждом разделе указаны время начала и время окончания.Затем я использую этот код для воспроизведения определенной части аудиофайла:

speak: function(str) {
        this.vo.currentTime = 0;
        var curr = {};

        curr = this.sprite[str];
        this.vo.currentTime = curr[0];
        this.vo.volume = _data.vol[1];
        this.vo.play();

        var onTimeUpdate = function() {
            if (this.currentTime >= curr[1]) {
                this.pause();
                this.load();
                this.currentTime = 0;
            }
        };

        this.vo.addEventListener('timeupdate', onTimeUpdate, false);
    }

"vo" - аудиофайл, загруженный как vo = new Audio('..file..') "str" ​​- это имя свойства, которое содержитвремя начала и окончания этой части.пример: если я передаю aud.speak('hello');, то он играет ту часть спрайта, где он говорит «привет».

Проблема: после того, как одна из частей сыграна, большинство других частей не будет игратьпосле этого. Я почти все перепробовал.вот почему вы видите .load(), .pause(), .currentTime = 0;.

1 Ответ

0 голосов
/ 26 ноября 2018

Я исправил проблему, перезагружая аудио файл каждый раз, когда вызывается метод speak().Поскольку файл размещается локально, его перезагрузка не проблема, но, вероятно, это не лучшее решение для тех, кто использует размещенный контент.

this.vo = new Audio('..file..');

Я добавил эту строку в началеspeak() метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...