Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.01.2006, 02:51
timoshenkov вне форума Посмотреть профиль Отправить личное сообщение для timoshenkov Посетить домашнюю страницу timoshenkov Найти все сообщения от timoshenkov
  № 1  
Ответить с цитированием
timoshenkov
 
Аватар для timoshenkov

Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
Attention Mp3 плеер, проблема кеширования

Подскажите пожалуйста кто занимался написание mp3 плеера на Flash.

Уроки и примеры которые выложенны в интернете не объсняют ряд проблем, а именно: подглючивание с загрузкой треков

Ситуация следующая:
  • по умолчанию загружается автоматом первый трек, но это не важно
  • отрисовывается прогресс бар
  • если трек не дозагрузился, а пользователь нажмет кнопку на следующий трек, то загрузка прервется и начнется новая
  • то вот здесь и вслывает проблема! ролик не грузит в себя (как мне кажется) второй раз этот трек, а использует то, что есть

Результат
  • вместо проигрования слышно как будто зациклен маленький фрагментик


почему так странно играет понятно, так как метод play в моем плеере рабетает через свойства sound объекта (position, duration), а они не соотведствуют действительности


Код:
Audio.prototype.play = function(){
	if(this._loaded != 100){return;}
	if(this._mute)
		{this._soundObj.setVolume(0);}
	this.isPlaying = true;
	this._soundObj.stop();
	this._soundObj.start(this.position/1000, 0);
	this.createProgressBar();
}



Как мне объяснить флешу, да и вообще узнать это, что если трек не догрузился, то загрузить его заного целиком.

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


Кто нибудь может помочь?


Вот как происходит загрузка
Код:
Audio.prototype.loadUrl = function(url)
{
	this.isPlaying = false;
	this._soundObj.loadSound(url, false);
	this._loaded = 0;
	this._nDownloadInterval = setInterval(this,"checkDownload",3);
	this.createProgressBar();
}

//this._soundObj = new Sound(target);
//создается при создании объекта


//this.isPlaying если это false то плеер не играет
//this._loaded если это не 100 то плеер не играет




//вот как происходит проверка загрузки mp3
Audio.prototype.checkDownload = function(){
    if(this._loaded != 100) {
this._loaded=Math.round(this._soundObj.getBytesLoaded()/this._soundObj.getBytesTotal()*100); 
	}
	else
	{
		this.onLoadUrl();
	}
}




////////////////
//onLoadUrl(); в это функции я убираю загрузчик 
//и начинаю проигрование 
//и загружаю данные из sound объекта

так вот у меня складывается мнение что onLoadUrl() вызывается раньше времени


спасибо.
__________________
Благодарю за чтение, мужчины и женщины.


Последний раз редактировалось timoshenkov; 08.01.2006 в 02:53.
Создать новую тему   Часовой пояс GMT +4, время: 02:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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