Plugin Container для Firefox вылетает при использовании видеодисплея - PullRequest
0 голосов
/ 16 мая 2011

Я использую mx: videodisplay для воспроизведения видеофайлов (.flv и .mp4), и он отлично работает. Он делает то, что должен - он прекрасно воспроизводит видеофайл. Но каждый раз, когда я перезагружаю страницу, исходный видеофайл перезагружается на мой компьютер, что приводит к соответствующему увеличению объема памяти, используемой plugin-container.exe, до тех пор, пока не останется свободной памяти и он не будет работать.

Вот диспетчер задач после трех перезагрузок.

Перед первой перезагрузкой

first http://i.stack.imgur.com/4PJDe.jpg

После третьей перезагрузки

third http://i.stack.imgur.com/Yivtk.jpg

Итак, мой вопрос: есть ли способ удалить загруженный файл после перезагрузки страницы?

Если вам интересно, почему мне нужно перезагрузить страницу. Дело в том, что сайт, который я разрабатываю, должен воспроизводить много разных видеофайлов, а не только один. И пока вкладка моего сайта открыта в Firefox, объем памяти, используемой плагином-контейнером, не уменьшается. После закрытия вкладки память освобождается. Но очень неудобно покидать веб-сайт, повторно входить в него, а затем снова входить в него после просмотра каждого видео.

Вот сценарий. На самом деле это миниатюра, которая показывает четыре кадра видео (повтор) через две секунды (интервал).

<?xml version="1.0" encoding="utf-8"?>
  <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
 <mx:Script> 
    <![CDATA[
        [Bindable] 
        public var source:String;
        [Bindable]
        public var repeat:int=4;
        [Bindable]
        public var interval:int=2; 
        private var timer:Timer;
        import mx.events.VideoEvent;

        private function init():void{
            timer = new Timer(interval*1000,0);
            timer.addEventListener(TimerEvent.TIMER, switchThumbnail);
        }
        private function startTimer():void {
            vid.play();
            vid.pause();
            vid.playheadTime=vid.totalTime/repeat;
            timer.start();          
        }

        private function resetTimer():void {
            vid.stop();
            vid.close();
            timer.reset();
        }

        private function switchThumbnail(event:TimerEvent):void{
            vid.playheadTime=vid.playheadTime+vid.totalTime/repeat;
            if(vid.playheadTime>=vid.totalTime){
                vid.playheadTime=0;
            }
        }
    ]]>
</mx:Script>

<mx:Canvas>
    <mx:VideoDisplay id="vid" source="{source}" autoPlay="false" rollOver="startTimer()" rollOut="resetTimer()" volume="0" maintainAspectRatio="false" width="{width}" height="{height}"/>      
</mx:Canvas>

Даже у этого скрипта та же проблема:

<?xml version="1.0" encoding="utf-8"?>
  <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script> 
    <![CDATA[
        [Bindable] 
        public var source:String;
    ]]>
</mx:Script>

<mx:Canvas>
  <mx:VideoDisplay id="vid" source="{source}" autoPlay="false" volume="0" maintainAspectRatio="false" width="{width}" height="{height}"/>
</mx:Canvas>

...