Форум 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)
-   -   Буферизация звука (http://www.flasher.ru/forum/showthread.php?t=100385)

FMensk 26.08.2007 22:18

Буферизация звука
 
Вопрос первый:
- Можно ли как небудь _soundbuftime = 20 подвязать не к времени а к % загрузки, допустим 10% загрузилось и пошло воспроизведение, ведь у всех разная скорость интернета! кому то и 60 секунд будет мало, а кому и 5 много.

Вопрос второй:
- Можно ли отследить находиться звук в процессе буферизации, или играет, если прошла 10 сек. буферизация звук начал играть (надо отследить что он начал играть), потом звук догнал загрузку и опять остановился буферизироваться (тоже надо отследить), потом опять пошел и т.д.

Спасибо:)

Mr. Fixit 26.08.2007 22:58

Вопрос №1:
Код:

_soundbuftime = 20;
var s:Sound = new Sound(this);
s.loadSound("path", true); //true - потоковая загрузка с буферизацией в 20 сек


FMensk 26.08.2007 23:19

Уточнение.
20 сек - это когда в буфере 20 секунд звука загрузилось???
или по прошествии 20 секунд начнется воспроизведение??
-ну вообщем я и сам дагодался.
спасибо что вывели меня из заблуждения. :)

ВОПРОС №2 в силе!!!

stutsm 20.11.2007 12:32

Люди добрые а может подскажите как к этому коду еще прикрутить визуальную полоску на которой будет обозначено сколько чего загрузилось и проигралось? Очень нужно, во Flash профан.

screamge 20.11.2007 12:52

Видимо на вопрос ответ уже найден но…отвечу:
1. Если нужны проценты то можно считывать из тагов длину дорожки и затем высчитать 20 или сколько нужно процентов от общей длины и буфтайм ставить в полученный результат.
2. position за кол-во миллисекунд уже проигранных, можно проверять это значение, если на протяжении нескольких секунд оно не обновлялось значит звук буферезируется.

stutsm, так как в хелпе в коде ошибка выложу сюда, но на будущее стоит заглядывать в него.

Код:

var pb_height:Number = 10;
var pb_width:Number = 100;
var pb:MovieClip = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
pb.createEmptyMovieClip("bar_mc", pb.getNextHighestDepth());
pb.createEmptyMovieClip("vBar_mc", pb.getNextHighestDepth());
pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth());
pb.createTextField("pos_txt", pb.getNextHighestDepth(), 0, pb_height, pb_width, 22);

pb._x = 100;
pb._y = 100;

with (pb.bar_mc) {
    beginFill(0x00FF00);
    moveTo(0, 0);
    lineTo(pb_width, 0);
    lineTo(pb_width, pb_height);
    lineTo(0, pb_height);
    lineTo(0, 0);
    endFill();
    _xscale = 0;
}
with (pb.vBar_mc) {
    lineStyle(1, 0x000000);
    moveTo(0, 0);
    lineTo(0, pb_height);
}
with (pb.stroke_mc) {
    lineStyle(3, 0x000000);
    moveTo(0, 0);
    lineTo(pb_width, 0);
    lineTo(pb_width, pb_height);
    lineTo(0, pb_height);
    lineTo(0, 0);
}

var my_interval:Number;
var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
    if (success) {
    trace("sound loaded");
    }
};
my_sound.onSoundComplete = function() {
    clearInterval(my_interval);
    trace("Cleared interval");
}
my_sound.loadSound("song3.mp3", true);
my_interval = setInterval(updateProgressBar, 100, my_sound);

function updateProgressBar(the_sound:Sound):Void {
    var pos:Number = Math.round(the_sound.position / the_sound.duration * 100);
    pb.bar_mc._xscale = pos;
    pb.vBar_mc._x = pb.bar_mc._width;
    pb.pos_txt.text = pos+"%";
}


stutsm 20.11.2007 12:56

Спасибо большое.


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

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