2011-07-09 12 views
0

再生メディアをFlashDevelopにしようとしています。ここに私のアプリケーションのソースです:Flex 'VideoDisplayコントロールでストリームが開かない

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Script> 
    <![CDATA[ 
     import mx.events.VideoEvent; 

     private function pause():void 
     { 
      if (moo_player.state == VideoEvent.PLAYING) 
       moo_player.pause(); else 
      if (moo_player.state == VideoEvent.PAUSED) 
       moo_player.play(); 
     } 
    ]]> 
    </mx:Script> 

    <mx:Panel> 
     <mx:VideoDisplay 
      source="bar.flv" 
      width="640" 
      height="480" 
      maintainAspectRatio="true" 
      id="moo_player" 
      autoPlay="true" 
      doubleClick="pause();" 
      doubleClickEnabled="true" 
     /> 
    </mx:Panel> 
</mx:Application> 

私はアプリケーションを構築し、それを実行するときに問題がある(残念ながら、kmplayerのまたはMozillaせずにそれを実行する方法は考えを持っていない - Flash Playerが知る限りプラグインです)私はビデオを持っていません。ムービーファイルは、アプリケーションの "Application.flv"ディレクトリと同じディレクトリにあります。しかし、アプリケーションを(プレーヤーやブラウザ内で)数回リロードすれば、ビデオが始まります。

だから、ここに私の質問は以下のとおりです。VideoDisplay コンポーネントとどのようにこの 「非再生」を修正すると間違って何

  • 実行中のアプリケーションを実行するよりも、 ムービープレーヤーまたはブラウザで実行するのが良い方法はありますか?

P .:私の知識が不足していても怒らないでください。約30分前にFlexを使い始めました。

+0

ようこそFlexへ、私はあなたがそれを好きになると思います! VideoDisplayには既知の問題がいくつかありますが、使用しているFlex SDKのバージョンをお知らせください。 – Nate

+0

最新のもの - 4.5.1 afaik – shybovycha

答えて

1

MXコンポーネントではなくSparkコンポーネントを使用する必要があります。

<?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"> 
    <s:VideoPlayer source="bar.flv" width="640" height="480" /> 

</s:Application> 
+0

申し訳ありませんが、MXコンポーネントのコードが5回以上実行されている間、サンプルは3回の実行につき1回実行されます。これはもっと安定しているようですが、mx:VideoDisplayはSparkより簡単にカスタムインターフェイスで再実装できます。 – shybovycha

+0

何か、何ですか? MXとSparkの*最大の違いは、Sparkコンポーネントが完全にスキン可能であることです。また、これは常に動作するはずなので、ネットトラフィックを調べます。サンドボックスの問題、キャッシュの問題、ビデオがまだ読み込まれていない(または読み込みに失敗した)可能性があります。 –

+0

私の質問をよく読んでください。私は.flvファイルと同じフォルダにあるビデオを再生しようとしています。そして、私はKMPlayerとFireFoxの中で.flvを実行しています - 両方とも同じ悲しい結果を出します。 – shybovycha

0

コンポーネントの内部にビデオ表示に関する問題があります。いくつかの点でうまく行かない種類の唯一のフレックスコンポーネントです。あなたがFlexを探索することを妨げないようにしてください。

このコードのファイルの名前CustomVideoDisplay.asを作成し、それを拡張するカスタムコンポーネントを作成します。

package 
{ 
    import mx.controls.VideoDisplay; 

public class CustomVideoDisplay extends VideoDisplay 
{  
    [Bindable] 
    override public function get source():String 
    { 
     return super.source; 
    } 

    override public function set source(value:String):void 
    { 
     super.source = value; 

     play(); 
    } 

    public function CustomVideoDisplay() 
    { 
     super(); 
    } 
} 

}

を次に、あなたのルート<application>タグにこれを追加します。

xmlns:local="*" 

ビデオコンポーネントについては、

<local:CustomVideoDisplay 
     source="bar.flv" 
     width="640" 
     height="480" 
     maintainAspectRatio="true" 
     id="moo_player" 
     autoPlay="true" 
     doubleClick="pause();" 
     doubleClickEnabled="true" 
    /> 

これはあなたのためのトリックをしない場合は教えてください!

+0

これは私に思い出されるものです=)残念ながら、CustomVideoDisplayはビデオもレンダリングしません=(そして '非自動再生'のバグは消えません=( – shybovycha

+0

autoPlayをfalseにしてから、あなたのonCompleteイベントであなたのソースを呼び出しますか?これはあなたを修正するはずです。 – Nate

0

さて、私が考えた:私のプレイヤーはWebプロジェクトのクライアント側で実行され、Firefoxでそのコードが正常に実行さ7のそれぞれを実行し、これを試してみてください。私はこれがテストと実装には十分だと思います。

トラブルシューティングのおかげで誰もが!

関連する問題