Форум 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.
Старый 08.01.2006, 07:00
Madasan вне форума Посмотреть профиль Отправить личное сообщение для Madasan Найти все сообщения от Madasan
  № 2  
Ответить с цитированием
Madasan
 
Аватар для Madasan

Регистрация: Jun 2005
Адрес: в Питере
Сообщений: 981
Вот посмотри там исходник есть, авось поможет.
__________________
Делай всё быстро, но не торопись!.._/*o|o*\_.

Старый 08.01.2006, 07:55
timoshenkov вне форума Посмотреть профиль Отправить личное сообщение для timoshenkov Посетить домашнюю страницу timoshenkov Найти все сообщения от timoshenkov
  № 3  
Ответить с цитированием
timoshenkov
 
Аватар для timoshenkov

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

Точнее там это сделано через интерфейс. Сначала кнопка загрузить потом, только play()
если заставять пользователя нажимать на кнопку два раза, что бы проиграть трек, то это издевательство.
А автоматически это состояние загруженности или недозагруженности, как я писал, у меня плеер сам определить не может, галюценирует.
То есть у меня он в состояние play() переходить через загрузку, если загружено, начнет проигрывать.
__________________
Благодарю за чтение, мужчины и женщины.

Старый 08.01.2006, 08:14
Madasan вне форума Посмотреть профиль Отправить личное сообщение для Madasan Найти все сообщения от Madasan
  № 4  
Ответить с цитированием
Madasan
 
Аватар для Madasan

Регистрация: Jun 2005
Адрес: в Питере
Сообщений: 981
Цитата:
если заставять пользователя нажимать на кнопку два раза, что бы проиграть трек, то это издевательство.
Зачем два раза? один раз чтобы загрузить, второй, чтобы проиграть, можно конечно сделать, чтобы сразу проигрывалось как загрузиться, но это уже дело вкуса. Меня например иногда пугала музыка, которую поставил загружаться и пошел че-нить смотореть другое, а она как грянет внезапно, аж подскакиваешь!
А сути твоей ошибки чесно говоря не уловил, просто дал свой вариант плеера!
__________________
Делай всё быстро, но не торопись!.._/*o|o*\_.

Старый 08.01.2006, 15:56
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 5  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Суть ошибки в необходимости прервать загрузку.
У Сенокулара было про это.

Старый 08.01.2006, 19:03
timoshenkov вне форума Посмотреть профиль Отправить личное сообщение для timoshenkov Посетить домашнюю страницу timoshenkov Найти все сообщения от timoshenkov
  № 6  
Ответить с цитированием
timoshenkov
 
Аватар для timoshenkov

Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
Цитата:
Сообщение от Antares
Суть ошибки в необходимости прервать загрузку.
У Сенокулара было про это.

А это где сенокуляр?
я не понимаю просто в какой момент её разорвать? первый раз то её пользователь сам рвет, гад.
Или мне тупо грузить 2 раза, что бы наверника? Но это криво как то.
__________________
Благодарю за чтение, мужчины и женщины.

Старый 08.01.2006, 19:07
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 7  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Ну вы, блин, даете...(с)

senocular.com

Старый 08.01.2006, 19:10
timoshenkov вне форума Посмотреть профиль Отправить личное сообщение для timoshenkov Посетить домашнюю страницу timoshenkov Найти все сообщения от timoshenkov
  № 8  
Ответить с цитированием
timoshenkov
 
Аватар для timoshenkov

Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
упс, пардон.

я на его примере и делал плеер
только у него он был сделан на присоединении из библиотеки, поэтому ни какких запар с загрузкой

Старый 08.01.2006, 19:13
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 9  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Есть беспроигрышный вариант узнать от самого автора -- пойти на Ультрашок и там завести тему "проблема с измененным исходником с senocular.com". Он там завсегдатай.

Старый 08.01.2006, 19:51
timoshenkov вне форума Посмотреть профиль Отправить личное сообщение для timoshenkov Посетить домашнюю страницу timoshenkov Найти все сообщения от timoshenkov
  № 10  
Ответить с цитированием
timoshenkov
 
Аватар для timoshenkov

Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
на измененный исходник это уже не похоже
я подрезал идею с классом, удобно выглядить типа такого:

player = new player()
player.stop()
player.newxtTrask()

и потом эти методы шлепаешь куда душе угодно.
И самое главное что класс позаботиться о том, что если нажали одну кнопочку, то не сработает другая и т.д.


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

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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