Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с Sound.start() (http://www.flasher.ru/forum/showthread.php?t=88871)

sourcer21 02.12.2006 23:19

Проблема с Sound.start()
 
Есть вот такой код
Код:

var my_sound:Sound = new Sound();

var get_bytes;
var get_percent;
var cur_pos;
var _fl=0;

my_sound.loadSound("http://localhost/Bodom.mp3", false);

var my_interval:Number;
my_interval = setInterval(checkProgress, 100, my_sound);

my_sound.onSoundComplete = function() {
  clearInterval(my_interval);
};


function checkProgress(the_sound:Sound):Void {
 var pct:Number = Math.round(the_sound.getBytesLoaded()/the_sound.getBytesTotal()*100);
  var pos:Number = Math.round(the_sound.position/the_sound.duration*100);
  _root.cur_pos=the_sound.position;

 if(pct>20 && _root._fl!=1)
  {
        _root["my_sound"].start();
        _root._fl=1;
         
  }
}

[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

При загрузки 20% срабатывает _root["my_sound"].start(); которая поидеии должна дать комманду начать играть музыку, но почему то она не начинает играть хотя учловие if(pct>20 && _root._fl!=1)
срабатывает. Подскажите пожалуйста как решить данную проблему.

etc 03.12.2006 00:17

1) onSoundComplete — это событие, которое будет вызвано в том случае, когда будет завершено проигрывание звука.
2) Ты пытаешься запустить проигрывание звука на 20% загрузки, при этом ставишь false в loadSound, указывая, что это не stream-поток. Такой звук не будет проигрываться до тех пор, пока не будет полностью загружен.

sourcer21 03.12.2006 00:39

Цитата:

Сообщение от __etc
1) onSoundComplete — это событие, которое будет вызвано в том случае, когда будет завершено проигрывание звука.
2) Ты пытаешься запустить проигрывание звука на 20% загрузки, при этом ставишь false в loadSound, указывая, что это не stream-поток. Такой звук не будет проигрываться до тех пор, пока не будет полностью загружен.

Понял. А не подскажите как указать что это sreeam поток?

etc 03.12.2006 01:20

Поставить вторым аргументом true, а не false. И остановить воспроизведение сразу после загрузки. После того, как закачается 20% — начать воспроизведение. Хотя, есть буфер в секундах, значение которого можно изменять — звук не будет вопроизводится, пока буфер не будет полон.

pkfun 03.12.2006 01:26

При медленном инете это создает очень неприятный эффект - звук постоянно рвется.

sourcer21 03.12.2006 14:41

Цитата:

Сообщение от __etc
Поставить вторым аргументом true, а не false. И остановить воспроизведение сразу после загрузки. После того, как закачается 20% — начать воспроизведение. Хотя, есть буфер в секундах, значение которого можно изменять — звук не будет вопроизводится, пока буфер не будет полон.

Я так пробовал и происходит примерно следующие. Звук буквальн на секунду начинает играть в 20% загрузки и сразу же останавливается и дальше продолжает играть уже только после полной загрузке.

etc 03.12.2006 14:57

Поставь _soundbuftime на ноль.


Часовой пояс GMT +4, время: 05:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.