|
|
|||||
Регистрация: Apr 2010
Сообщений: 24
|
HSlider и VideoDisplay
Всем привет.
Есть VideoDisplay, в котором проигрывается видео. и есть HSlider - прогрессбар для этого видео. Проблема в том, что при событии drag/drop слайдера, ползунок слайдера сначала становится в указанную мной позицию времени (например, 37-ю секунду), но потом почему-то немного перепрыгивает вперед (к примеру, на 38.5 секунду) и только потом обновляется кадр на видео в VideoDisplay. Помогите разобраться, что не так в коде: private function slider_thumbPress():void { videoDisplay.pause(); } private function slider_thumbRelease():void { videoDisplay.playheadTime = slider.value; } private function videoDisplay_playheadUpdate():void { slider.value = videoDisplay.playheadTime; } Заранее спасибо |
|
|||||
Может проще взять http://help.adobe.com/ru_RU/AS3LCR/F.../ScrubBar.html ?
|
|
|||||
<s:HSlider id="timeSlider" x="30" y="1" width="308" change="dispatchEvent(new TimelineEvent(TimelineEvent.ACTION_TIME_CHANGED , timeSlider.value))" changeEnd="_slideChanging=false" changeStart="_slideChanging = true" chromeColor="#86B801" enabled="false" liveDragging="false" maximum="100" showDataTip="false" snapInterval="1"/> public function setProgress(value:Number):void { if(!_slideChanging){ timeSlider.value = value; } }
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Apr 2010
Сообщений: 24
|
Спасибо за предложения.
Genzo, Откуда вызывается метод setProgress ? И еще: у меня FlashBuilder 4.0 и нет возможности установить более позднюю версию, поэтому TimelineEvent моему sdk (4.0) не известен Не могли бы вы предоставить более развернутый пример кода? Огромное спасибо |
|
|||||
Извиняюсь, я просто копипастил свой код, TimelineEvent мой класс, тут принцип такой : класс Timeline наследуется от Group и в нем вся логика управления плеером (плей,пауза,громкость,время и т.п.)
<s:HSlider id="slider" change="onChange()" changeEnd="_slideChanging=false" changeStart="_slideChanging=true" /> //Script : private var _slideChanging:Boolean; private function onChange():void { videoDisplay.playheadTime = slider.value ; } private function videoDisplay_playheadUpdate():void { if(!_slideChanging){ slider.value = videoDisplay.playheadTime; } }
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Apr 2010
Сообщений: 24
|
Dct равно прыгает
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ private var _slideChanging:Boolean; private function onChange():void { videoDisplay.playheadTime = slider.value ; } private function videoDisplay_playheadUpdate():void { if(!_slideChanging){ slider.value = videoDisplay.playheadTime; } } protected function videoDisplay_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub videoDisplay.pause(); } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <mx:VideoDisplay id="videoDisplay" visible="true" width="400" height="250" playheadUpdate="videoDisplay_playheadUpdate()" autoBandWidthDetection="true" click="videoDisplay_clickHandler(event)" source="http://192.168.1.120/taggingcontrol/video/abc.flv"/> <s:HSlider id="slider" x="30" y="1" width="308" change="onChange()" changeEnd="_slideChanging=false" changeStart="_slideChanging = true" snapInterval="3" liveDragging="false" maximum="100"/> </s:Application> |
|
|||||
От этого не избавиться, у вас в видео файле так расставлены ключевые кадры
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Apr 2010
Сообщений: 24
|
Genzo,
Это точно так? Есть ли где-то описание этого? Может, на официальном сайте? |
|
|||||
Попробуйте открыть VLC или другим проигрователем этот файл и посмотрите как там мотается
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Apr 2010
Сообщений: 24
|
да, действительно, в VLC и в MediaPlayer Classic все так же, как и во флеше.
Спасибо за подсказку. |
Часовой пояс GMT +4, время: 14:21. |
|
« Предыдущая тема | Следующая тема » |
|
|