メイン サーバ関連【CGI・FCS・XMLSocket etc】 FLVのキューポイントをトリガしたいのですが... | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ネコジャラ | Åê¹ÆNo.31049 投稿日時: 2006-12-25 23:42 |
新米 居住地: 東京 投稿: 22
使用環境:
WindowsXP Pro SP2 Flash8 Pro mProjector V3 |
Re: FLVのキューポイントをトリガしたいのですが... たまたまflv関連のスレッドがあって、ちょうどその時自分がつまってて質問し、
当方の詳しい事情説明もせずにすみません。 ■(結論として)質問当初のflvのキューポイントで制御から外部xmlで制御に■ 元々が現在swfでやっているPIPのムービーをflv化して、使いやすく(作りやすく) 出来ないか?というものだったのです。 (現状、土台のプレイヤーswfから、個別の章ごとの外部swfを読み込んで再生。 映像、音声、デロップやイラストは各章のswf上のタイムラインで作成する) コンポーネントを使わなかった理由として、一つが完全オリジナルなデザインにしたいという事と、 機能(ボタン等)も「早送り」「巻き戻し」「chapter(章)送り」「chapter(章)戻し」 「再生」「停止」顧客によっては「再生/停止」「シークバーで位置自由指定」 などを使いたいが為に1から作成したものです。 で、タイムラインでやってたタイミング調整をキューポイントを取得して、 そのタイミングに合わせてテロップを切り替えたりすれば、タイムライン上で 調整するより手間が掛からなくていいかな?と思ったのが始まりでした。 ただ、動画エンコードは外部にお願いしてるのと、flv作成時点ではまだ 正式な絵コンテも出来てなく単純に章で区切るだけなので、書き出し時にキューポイントの 埋め込みは難しい状況なのです。 また、後でタイミングの修正が入るケースや、一部のアニメーションの修正があった場合、 外部xmlで時間指定してあれば、それを書き換えるだけで済むので (PIPのオーサリング自体も外で行う場合があるので) 汎用性を考えたらやはりキューポイント埋め込みより目で見える外部xml化かなあ…と。 なので質問した当初の仕様から変わってxmlで制御するようなもの(コンポーネントとして 販売されてる物に近い物)を作成する事になりました。 (テストで外部xmlのパラメータ変更で中のmcのサイズ、表示テキスト変更などが出来たので) ■flvでやった部分としてのフィードバック■ 埋め込み自体は、専用のソフトウェア(http://buraks.com/captionate/)を購入し、一度書き出したflvに追加で 埋め込めることを確認しました。ミリセカンド単位で書き込めるのでかなり細かいタイミングで取れるかと思います。 またそのflvに埋め込んだデータをプレイヤーswf上で取得(infoObjectで)する処まで出来ました。 ・キューポイントの名前 ・↑のキューポイント内で付けたパラメータ名と値(複数可?) ・キューポイントの時間 ・キューポイントの種類(イベントorナビゲーション) 後はそのキューポイントの時間に合わせて(トリガさせて)各種アニメーションを同期させれば完成予定だったのですが…何かの参考になれば幸いです。 永井様のpdfは拝見させて頂きました。ありがとうございます。 VideoPlayer.cuePoint…キューポイントに到達したときに通知されます。 埋め込んでおけば、やはりそれに合わせて他の動作は出来そうですね… また疑問点などありましたらお尋ねする事もあるかと思いますので宜しくお願いします。 |
永井勝則 | Åê¹ÆNo.31036 投稿日時: 2006-12-25 0:26 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: FLVのキューポイントをトリガしたいのですが... 実際試したわけではないですが、
FLVのエンコーディング時にキューポイント情報を埋め込んだ方が ActionScriptでキューポイントを設定するよりも精度は高いそうです(Flashヘルプより)。 引用:
キューポイント情報をFLAファイル内に”ハードコーディング”する方法 (つまりエンコーディング時に埋め込まない方法)は、 ”埋め込む方法ほど精度が高くない”という意味で、 外部ファイルから読み込む方法と、精度の点で違いがないように想像します。 VideoPlayerクラスを説明した英語のPDFファイルがあって、 http://www.himco.jp/ の翻訳記事No47にそれを訳したSWFがあります。 Macromediaはこのクラスの直接的な使用を推奨しない旨の記述が どこかにあったような記憶があるのですが、 そのわりにこのファイルの記述は懇切丁寧です。 ”軽い”ビデオプレイヤーが作れます。 ご参考まで。
|
ネコジャラ | Åê¹ÆNo.31035 投稿日時: 2006-12-24 23:53 |
新米 居住地: 東京 投稿: 22
使用環境:
WindowsXP Pro SP2 Flash8 Pro mProjector V3 |
Re: FLVのキューポイントをトリガしたいのですが... ご回答頂きありがとうございます。m(_ _)m
コンポーネントの自作はやった事ないので難しそうですが、 リスナーオブジェクトは「ステージサイズ変更に合わせて任意の mcを動かす」等はやった事があるので、試してみたいとも思います。 ただその後の仕様変更で、flvにキューポイントの埋め込みを別ソフトでやるより、同様のデータを外部xml等で持っておけば、更新も より簡易になるのでは?という事で案件自体が止まってしまっている状態です。 VideoPlayerクラスというのもあるのですか… 色々勉強して、また進展ありましたら報告したいと思います。 |
永井勝則 | Åê¹ÆNo.31015 投稿日時: 2006-12-22 23:54 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: FLVのキューポイントをトリガしたいのですが... キューポイントの実装、ということかと思いますが、
コンポーネントを自作することになると思います。 任意のリスナーオブジェクトへの任意のイベントの送信は、 ちょいとした手続きでできるようになりますが、 その前の、自作コンポーネント自体がキューポイントの情報を プロパティとして持っている必要があります。 このあたりも全部自作することになります。 別の方法として、VideoPlayerクラス(FLVPlaybackコンポーネントの中身みたいなもの)で cuePoint機能が使えるようなので これを使う方法もあるかと思います。 ほとんど日本語になっていません。
|
ネコジャラ | Åê¹ÆNo.28794 投稿日時: 2006-9-18 1:59 |
新米 居住地: 東京 投稿: 22
使用環境:
WindowsXP Pro SP2 Flash8 Pro mProjector V3 |
Re: FLVのキューポイントをトリガしたいのですが... お世話になります。
キューポイントの話題が出ていたので便乗して質問させて下さい。 現在、オリジナルflvプレイヤーをFlash8Proで作成しております。プレイヤー.swfから外部の動画.flvを読み込み、再生/停止ボタン・シークバーをつけるところまで出来ました。 今後、キューポイントを使って、例えば"chapter1"というキューポイントを動画.flvに埋め込み、その秒数が来たら別のswfを再生させる(テロップ表示)という事をやろうと思っています。 が、キューポイントのデータ自体はヘルプを見て取得出来た(traceで表示出来ました)のですが、それをリスナーで検知する方法が分かりません。 といいますか、そもそも、キューポイントはFLVPlayback等のコンポーネント専用なのでしょうか? よろしくお願いします。 |
chiri | Åê¹ÆNo.24171 投稿日時: 2006-3-6 18:06 |
新米 居住地: 投稿: 8
使用環境:
Mac OS 10.4で?す。 Flash8を使用しています。 わかならにことばかり、教えてくださ?い。 |
Re: FLVのキューポイントをトリガしたいのですが... 永井様 ほんっとに親切にありがとうございました。 ちょっとしたことを教わるだけで、とても 勇気が付きますね。 もっと、勉強して面白いもの作りたいです。 書籍のほう、チェックしてみます。 どうもありがとうございました。 またよろしくお願いします。 chiri |
永井勝則 | Åê¹ÆNo.24162 投稿日時: 2006-3-6 15:22 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: FLVのキューポイントをトリガしたいのですが... リスナー/イベントというモデル(そういう形式)は、2次方程式の解の公式のように、そういうものだと観念して
形として覚えるのがよいと思います。 形というのは、 リスナーオブジェクト:Object=new Object(); リスナーオブジェクト.イベントハンドラ = function(イベントオブジェクト:Object):Void{ ここで何かする; } コンポーネントのインスタンス.addEventListener("イベントハンドラ名",リスナーオブジェクト) です。 リスナーオブジェクトというのは普通の(そして一番大元の)汎用オブジェクトです。 こいつにイベントハンドラ(=このイベントが発生したらそれをつかまえる)関数を定義して、 コンポーネントに登録すると、ありがたいことにこっちがその後何にもしなくても、監視をつづけて、報告してくれるのです。 質問のObjectとかVoidの指定というのは、いわゆる”厳密な型指定”という、 難解な日本語で呼ばれる、ActionScript2.0での書き方です。 スクリプトを記述するときに、そのタイプ(型)をしっかりと(厳密に)指定しておくと、 FlashのコンパイラがFLAファイルをコンパイル(機械語に翻訳)するときに、調べてくれる、という機能を使うことができます。 ActionScriptは以前は、スラッシュ・シンタックスという超独特の書き方をする、方言の強い言語だったのですが、 Flash 5でドット・シンタックスを採用し、MX、2004と進むにつれ、 いわゆるECMAScriptという書き方の決まりに意図的に近づいています。 詳しくはヘルプ、書籍「Flash ActionScript2.0 入門ガイド+実践サンプル集」などをご覧ください。
|
chiri | Åê¹ÆNo.24152 投稿日時: 2006-3-6 13:37 |
新米 居住地: 投稿: 8
使用環境:
Mac OS 10.4で?す。 Flash8を使用しています。 わかならにことばかり、教えてくださ?い。 |
Re: FLVのキューポイントをトリガしたいのですが... 永井様
本当に助かります。 どうもありがとうございました。 教えていただいた点と ヘルプのコンポーネントリファレンスガイドと いうページを参照にして、動かすことができました。 PlayButtonは、コンポーネントのものを使用しています。 ですが、これも、デザインを変えたいと思っていて、 シンボルの中に入っていってデザインをグラフィックごと 変えようと思っているのですが、なかなかややこしいです。 わたしは、listner関係が苦手でいつも避けていたので、 今回はとても勉強になりました。 初歩的なことで申し訳ないのですが、 listenerObject:Objectに書かれている:Objectっていうのは これがObjectだよってことを教えているだけなのでしょうか。 ほかにも役割があるんでしょうか? それと、function(eventObject:Object):Void のVoidって どういう意味なんでしょうか。 何度も何度もすみません。 本当にありがとうございます。 chiri |
永井勝則 | Åê¹ÆNo.24146 投稿日時: 2006-3-6 11:57 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: FLVのキューポイントをトリガしたいのですが... 前の内容と違って、
my_FLVPlybk.playButton = playbtn; で、再生ボタンを別に作成されているようですが、 これはFLVPlayback Custom UIコンポーネントのPlayButtonでしょうか、 それとも通常のムービークリップかボタンでしょうか? 新しいことは少し抑えてまずは、FLVPlaybackコンポーネントのボタン類を表示させて そのボタン類で制御することが先かと思います。 で、書かれている内容で全てかどうか分かりませんが、たとえば、 my_FLVPlaybk.addEventListener("cuePoint",リスナーオブジェクト); は実行されていますでしょうか? (これを実行していないと、キューポイントの出力も行えません) 書かれているスクリプトだけで言うと、この再生用ボタンが普通のムービークリップ の場合は何も起こりません。 FLVPlayback Custom UIコンポーネントのPlayButtonの場合は、 コンポーネント同士がしかるべき設定をすると、自動的に結びつくようです。 もし、リスナーオブジェクトとかaddEventListenerとかの使用にまだ慣れていらっしゃらない場合は、 キューポイントの前にリスナー/イベントという構造を把握する必要があります。 FLVPlayback.cuePointでキューポイントの情報をたしかに取得できているかどうか、 trace()で出力して確認します。 eventObject.info.nameでキューポイントの名前が取得できているかtrace()で確認します。 さらに言えば、_root.shikakuでshikakuインスタンスにアクセスできているのかtrace()で確認します。 一足飛びにいかないで、ひとつずつtrace()で扱いたいデータ、情報、インスタンスなどを取得できているのか、確かめていきます。 ここでundefinedが返される場合は、どこかに問題があるので、それを突き止めるという作業に移ります。
|
chiri | Åê¹ÆNo.24141 投稿日時: 2006-3-6 11:02 |
新米 居住地: 投稿: 8
使用環境:
Mac OS 10.4で?す。 Flash8を使用しています。 わかならにことばかり、教えてくださ?い。 |
Re: FLVのキューポイントをトリガしたいのですが... 永井様
どうもありがとうございます。 FLVPlaybackで再生を試しているのですが、どうも、 キューポンが再生されたときにムービークリップと 連動しません。 my_FLVPlybk.playButton = playbtn; listenerObject.cuePoint = function(eventObject:Object):Void { var theName:String = eventObject.info.name; if (theName == "n1") { _root.sikaku._x += 100; } }; で、プレイボタンとFLVPlaybackを連動させて、ムービー クリップsikakuをキューポイントn1が再生されるときに x軸を100動かしたいのですが、どうも、うまく連動しません。 キューポイントの中身は、 名前 n1 タイム 03:00 タイプ イベント パラメーター 名前 cc 値 hello という情報が入れてみました。 どこか、間違っているところがあるのでしょうか。 よろしくお願いします。 chiri |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |