Как вернуть длительность песни в soundmanager - PullRequest
1 голос
/ 25 августа 2011

Как я могу вернуть продолжительность песни в soundmanager с функцией?

function item_duration(){
    var song_item = soundManager.createSound({
        id:'etc',
        url:'etc',
        onload: function() {
                    if(this.readyState == 'loaded' ||
                    this.readyState == 'complete' ||
                    this.readyState == 3){
                    return = this.duration;         
                    }
       }
   });

   song_item.load();

}

Это моя попытка, но она не работает

1 Ответ

1 голос
/ 25 августа 2011

return - это ключевое слово, а не переменная.return this.duration; - это то, что вы хотите;пропустите = (что приведет к синтаксической ошибке)

... но это не сильно поможет, потому что , куда вы возвращаете его?Вам нужно будет вызвать другую функцию, которая что-то делает с продолжительностью.Функция item_duration возвращается сразу после вызова createSound, который затем асинхронно загружает файл

Попробуйте что-то вроде этого

function doSomethingWithTheSoundDuration(duration) {
    alert(duration); // using alert() as an example…
}

soundManager.createSound({
    id:  …,
    url: …,
    onload: function() {
        // no need to compare with anything but the number 3
        // since readyState is a number - not a string - and
        // 3 is the value for "load complete"
        if( this.readyState === 3 ) { 
            doSomethingWithTheSoundDuration(this.duration);
        }
    }
});
...