|
|
|||||
Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
|
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. |
|
|||||
Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
|
спасибо, но в нем я не нашел, что бы как то обрабатывалясь эта ошибка.
Точнее там это сделано через интерфейс. Сначала кнопка загрузить потом, только play() если заставять пользователя нажимать на кнопку два раза, что бы проиграть трек, то это издевательство. А автоматически это состояние загруженности или недозагруженности, как я писал, у меня плеер сам определить не может, галюценирует. То есть у меня он в состояние play() переходить через загрузку, если загружено, начнет проигрывать.
__________________
Благодарю за чтение, мужчины и женщины. |
|
|||||
Регистрация: Jun 2005
Адрес: в Питере
Сообщений: 981
|
Цитата:
А сути твоей ошибки чесно говоря не уловил, просто дал свой вариант плеера!
__________________
Делай всё быстро, но не торопись!.._/*o|o*\_. |
|
|||||
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Суть ошибки в необходимости прервать загрузку.
У Сенокулара было про это. |
|
|||||
Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
|
Цитата:
А это где сенокуляр? я не понимаю просто в какой момент её разорвать? первый раз то её пользователь сам рвет, гад. Или мне тупо грузить 2 раза, что бы наверника? Но это криво как то.
__________________
Благодарю за чтение, мужчины и женщины. |
|
|||||
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Ну вы, блин, даете...(с)
senocular.com |
|
|||||
Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
|
упс, пардон.
я на его примере и делал плеер только у него он был сделан на присоединении из библиотеки, поэтому ни какких запар с загрузкой |
|
|||||
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Есть беспроигрышный вариант узнать от самого автора -- пойти на Ультрашок и там завести тему "проблема с измененным исходником с senocular.com". Он там завсегдатай.
|
|
|||||
Регистрация: Feb 2002
Адрес: spb
Сообщений: 149
|
на измененный исходник это уже не похоже
я подрезал идею с классом, удобно выглядить типа такого: player = new player() player.stop() player.newxtTrask() и потом эти методы шлепаешь куда душе угодно. И самое главное что класс позаботиться о том, что если нажали одну кнопочку, то не сработает другая и т.д. Ладно попробую на ултрашоке поспрашивать.
__________________
Благодарю за чтение, мужчины и женщины. |
Часовой пояс GMT +4, время: 15:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|