2013-04-16 2 views
0

Я пытаюсь выполнить функцию поиска в классе NetStream с использованием Action Script language, поиск работает неправильно. Я читал о KeyFrames в NetStream, какова связь между KeyFrames и искать? есть ли другая проблема использования функции поиска NetStream? onClick() Функция поиска;Ошибка NetStream.seek Поиск видео

private function onClick(event:MouseEvent):void 
    { 
     if (event.currentTarget is Group) 
     { 
      var myGroup:Group = event.currentTarget as Group; 
      if (myGroup.mouseX >= 100) 
       { 
       mouseClickedXPos = myGroup.mouseX; 
       ns.inBufferSeek = true; 
       var seekTime:Number = (mouseClickedXPos-100) * (totalTime/(controlBarControls.width-100)); 
       ns.seek(seekTime);  
      } 
     } 
    } 

есть событие для NetStatus для чистого потока

ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);

private function onNetStatus(event:NetStatusEvent):void 
    { 
     if (event.info == "NetStream.Play.StreamNotFound") 
      legend.text = "Video file passed, not available!"; 
     else if(event.info.code == "NetStream.Play.FileStructureInvalid") 
      legend.text = "Video file passed, FileStructureInvalid"; 
    } 

event.info.code является быть NetStream.Seek.InvalidTime, видео перестанут играть, когда-то будет искать конец видео, но я отслеживаю его, ns.time() не обновляется до новой величины (seekTime)

+1

Мы не можем помогите вам в этом, если вы не покажете нам код, о котором идет речь, контекст этого кода и фактическую ошибку, которую вы получаете. –

+0

@ Apocalyptic0n3: question Обновлено –

ответ

0

Я не совсем уверен, но я думаю, что y НУ получил эту линию неправильно:

var seekTime:Number = (mouseClickedXPos-100) * (totalTime/(controlBarControls.width-100)); 

Попробуйте это вместо:

var seekTime:Number = ((mouseClickedXPos - 100)/(controlBarControls.width - 100)) * totalTime; 

В принципе, вы сравнивали две совершенно разные величины для формирования отношения и умножить на позиции мыши. Вместо этого разделите эту mouseX на общую ширину (указав положение щелчка в процентах от общей ширины) и умножьте это на время (давая вам процент от общего времени).

Я не слишком хорошо знаком с тем, как работает NetStream (я использовал его, недостаточно широко, чтобы узнать это с головы), но если вы пройдете время, большее, чем totalTime, чтобы быть ошибкой или он должен справиться с ней, либо не выполнив команду, либо установив значение в 0 (что я лично думаю, что произойдет. Как бы я это сделал, во всяком случае)

+0

Проблема метода поиска - ключевой кадр, который отвечает за точность поиска или нет. поиск не будет работать точно, если видео загружается с сервера, а длина видео меньше, чем одна-две минуты. Я тестирую его менее чем на одну минуту, а поиск не работает, это даст Seek.InvalidTime Error, но когда тест на двухминутной длительности видеоролика будет работать очень хорошо, точно не разница составляет +/- одну секунду от реального поиска, потому что видео будет искать ближайший кадр KeyFrames при загрузке. Спасибо за повтор и ответ. –