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

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

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

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
По умолчанию Видео плеер. Смещение ползунка при его отпускании.

Здравствуйте.
Делаю видео плеер. За основу беру уроки с сайта gotoAndLearn.com.
Есть небольшая проблема которую я пока не знаю как решить.
Когда начинаешь перематывать видео ползунком то при его отпускании он немного смещается, а иногда даже сильно. Это можно видеть когда просто перетаскиваешь его по линие, а также это сильно видно когда его дотягиваешь до конца (и немного дальше протянуть, он останется у конца полосы а сама мышь уйдёт правее) - он не остаётся на необходимом месте, а двигается левее (иногда даже значительно левее).

Это можно глянуть по ссылке http://webtok.ru/Art/vid/

Надеюсь проблема ясна, если кто-нибудь знает прошу подсказать решение.
За ранее спасибо!
Прилагаю исходник и код

Код AS1/AS2:
Stage.scaleMode = 'noScale';
setProperty('', _quality, 'BETS');
//
var playControl:Boolean = true;
var controll = player.controllPanel;// путь к панеле упревления видео потока
//
controll.loadStripe.loadBar.setMask(controll.loadStripe.masker);// маска для полосы загрузки
 
var pl:NetConnection = new NetConnection();
pl.connect(null);
 
var ns:NetStream = new NetStream(pl);
 
player.videoStream.vid.attachVideo(ns);
ns.play('vid10.flv');
//ns.play('http://webtok.ru/Art/vid/vid10.flv');
ns.pause(playControl);
 
 
 
// загрузчик
var loaderInterval = setInterval(loadStatus, 100);
var persentLoaded:Number;
var duration:Number;
 
ns.onMetaData = function(obj) {
	duration = obj.duration;
};
 
function loadStatus() {
	persentLoaded = ns.bytesLoaded / ns.bytesTotal;
	controll.loadStripe.masker._width = persentLoaded * 313;
	controll.loadStripe.drager._x = ns.time / duration * 313;
	//controll.loadStripe.drager._x = ns.time / duration * 298 + 7;
	controll.loadStripe.timeLine._x = controll.loadStripe.drager._x - 313;
}
 
// Полоса прокрутки
var dragerInterval;
 
player.controllPanel.loadStripe.drager.onPress = function() {
	clearInterval(loaderInterval);
	dragerInterval = setInterval(dragit, 10);
	startDrag(this, false, 0, this._y, 313, this._y);
	//startDrag(this, false, 7, this._y, 305, this._y);
};
 
player.controllPanel.loadStripe.drager.onRelease = player.controllPanel.loadStripe.drager.onReleaseOutside = function () {
	clearInterval(dragerInterval);
	loaderInterval = setInterval(loadStatus, 100);
	this.stopDrag();
};
 
function dragit() {
	ns.seek((player.controllPanel.loadStripe.drager._x / 313) * duration);
}
 
// Кнопки
//Play
controll.pl_but.onRelease = function() {
	if (playControl) {
		this.gotoAndStop(2);
		playControl = false;
		ns.pause(playControl);
	} else {
		this.gotoAndStop(1);
		playControl = true;
		ns.pause(playControl);
	}
};
Вложения
Тип файла: rar VPlayer.rar (168.5 Кб, 106 просмотров)


Последний раз редактировалось Art_133; 19.01.2009 в 17:09.
Старый 19.01.2009, 16:59
zzz_dmg вне форума Посмотреть профиль Отправить личное сообщение для zzz_dmg Найти все сообщения от zzz_dmg
  № 2  
Ответить с цитированием
zzz_dmg

Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
хм. все нормально. ползунок двигается как надо. а сильно смещается в левую сторону, когда дотягиваешь до конца в том случае, если видео до конца не загружено (т.е. смещается до загруженного фрагмента). что-то проблемы я не вижу или я не понимаю вопроса

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

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
"а сильно смещается в левую сторону, когда дотягиваешь до конца в том случае, если видео до конца не загружено" когда полностью загружено тоже такое происходит.
Что бы точнее понять проблему нажмите пожалуйста паузу и по перетаскиваете ползунок. При отпускании его он не станет точно на то же место, а сместиться. Иногда совсем на немного иногда сильно.

Старый 19.01.2009, 18:04
zzz_dmg вне форума Посмотреть профиль Отправить личное сообщение для zzz_dmg Найти все сообщения от zzz_dmg
  № 4  
Ответить с цитированием
zzz_dmg

Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
насколько я поняла у вас проблема в том, что в функции loadStatus() вы перезадаете величину controll.loadStripe.drager._x
а там должна считаться величина ns.time
вместо строчки
Код:
controll.loadStripe.drager._x = ns.time / duration * 313;
пропишите в функции loadStatus()
Код:
ns.time = controll.loadStripe.drager._x * duration * 313;

Старый 19.01.2009, 18:45
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 5  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Я так понимаю что проблема из-за не соответствия вычислений
Этого
Код AS1/AS2:
controll.loadStripe.drager._x = ns.time / duration * 313;
и
Код AS1/AS2:
ns.seek((player.controllPanel.loadStripe.drager._x / 313) * duration);
Когда отпускаешь ползунок (запускается функция loadStatus() в которой прописано
Код AS1/AS2:
controll.loadStripe.drager._x = ns.time / duration * 313;
Цифры координат не совпадают и происходит смещение.

Ваш совет работает, но только ползунок теперь не двигается...

Добавлено через 15 часов 59 минут
Не ужели никто не сталкивался с подобным? Может у Вас есть другой метод реализации подобной функции с перемоткой?

Старый 10.02.2009, 14:24
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 6  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Сейчас тоже поставил себе задачу поработать с видео. Пока ничего не делал - собираю материал , так что вполне могу сказать "не в тему", но... разве видео может проигрываться с любого кадра? Я думаю, что видео может начинаться только с определённых кадров. По-моему, на многих флешплеерах ползунок и видео играются несколько левее, чем то, что хочешь указать.

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Верно Stargazer, все зависит от колличества ключевых кадров. Если вы сконвертируете видео с 2-умя ключевыми кадрами то как бы вы не старались, видео перематываться будет, только на 2 этих ключевых кадра.
__________________
Убейте меня!

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

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Сегодня весь день сидел так и не нашел решения пока... Заметил что аналогичный глюк встречается часто в некоторых плеерах, а также в плеере на сайте Adobe (если найду дам ссылку позже).
Может кто глянет "свежим" взглядом и подскажет как решить проблему?

Добавлено через 3 минуты
Смещение ползунка при отпускание - чёрт с ним пусть будет. Но если резко протянуть бегунок к концу видео то ползунок вёрнётся на несколько пикселей левее и видео застопорится...

Старый 21.10.2009, 18:39
bpiter вне форума Посмотреть профиль Отправить личное сообщение для bpiter Найти все сообщения от bpiter
  № 9  
Ответить с цитированием
bpiter

Регистрация: May 2009
Сообщений: 6
Если известны: общее количество байт, кол-во загруженных байт и общее время воспроизведения, можно решить задачу по формуле:

ЗАГРУЖЕННЫЕ БАЙТЫ / (ОБЩЕЕ КОЛ-ВО БАЙТ / ОБЩЕЕ КОЛ-ВО СЕКУНД)

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

Старый 22.10.2009, 00:43
amexdesign вне форума Посмотреть профиль Отправить личное сообщение для amexdesign Посетить домашнюю страницу amexdesign Найти все сообщения от amexdesign
  № 10  
Ответить с цитированием
amexdesign

Регистрация: Jan 2009
Адрес: Германия, Bochum
Сообщений: 169
Отправить сообщение для amexdesign с помощью Skype™
попробуй вот так:
Код AS1/AS2:
function dragit() {
	ns.seek(Math.floor((player.controllPanel.loadStripe.drager._x / 313) * duration));
}

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

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

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


 


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


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