2

再生中のビデオからビデオ フレームを抽出する必要がある小さな Flash アプリを作成する必要があります。ユーザーのHDDに保存する必要はありません。画像データを取得して、Flash ムービーに表示するだけです。抽出するフレームはユーザーが選択するため、純粋にクライアント側でこれを実行したいのです (ただし、サーバー側から実行できることはわかっています)。

解決策を検索しようとしましたが、有用な結果が得られません。Flash の初心者である私は、どこから始めればよいかわからないため、まだコードを確認していません。

Flash の達人、これを行う方法はありますか?

4

2 に答える 2

4

BitmapData の draw() メソッドを使用して、Flash で DisplayObject の「スクリーン グラブ」を取得した場合。

flv を少し右または下に表示する何かがある場合は、次のようにしてみてください。

var cloneData:BitmapData = new BitmapData(video.width,video.height,false,0x000000);
cloneData.draw(video);
//test
addChild(new Bitmap(cloneData));

幸運を!

于 2009-12-29T01:42:54.300 に答える
3

ジョージの答えを読んだ後、これが概念の証明として思いついたものです。元の質問を汚染しないように、ここに投稿します。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="video.load()">
 <mx:VideoDisplay id="video" x="0" y="0" source="/content/content.flv" />
 <mx:Button x="10" y="10" label="Grab" click="grabClick()"/>
 <mx:Button x="71" y="10" label="Play" click="video.play()"/>
 <mx:Button x="130" y="10" label="Pause" click="video.pause()"/>
 <mx:Script>
  <![CDATA[
   import mx.controls.*;
   import flash.display.BitmapData;

   private function grabClick():void {
    var bitdata:BitmapData = new BitmapData(video.width, video.height, false, 0x0);
    bitdata.draw(video);
    var grabResult:Image = new Image();
    grabResult.x = 0;
    grabResult.y = video.height;
    grabResult.source = new Bitmap(bitdata);
    addChild(grabResult);
   }
  ]]>
 </mx:Script> 
</mx:Application>
于 2009-12-29T02:19:48.860 に答える