PHP Ming 是一種為 Flash 制作緊密集成的 open source 功能的庫,它能讓 PHP 開發者編寫 SWF (Flash) 文件,同時還可通過 ActionScript 執行代碼。PHP Ming 主要用于網絡游戲、廣告、在線教育等各類 Web 應用程序,同時也是一款十分重要的視頻處理工具。
PHP Ming在視頻處理上可以說是十分強大,一下就給大家介紹下 Ming 在視頻制作中的應用。
//開始使用php ming生成一個.flv文件 $flv = new SWFMovie(); $flv->setDimension(320,240); $flv->setRate(25.00); $flv->setBackground(0xFF,0xFF,0xFF); $stream = new SWFVideoStream("my.flv"); $stream->setDimension(320,240); $stream->setFps(25.00); $flv->add($stream); $stream->setFrameCallback(0, "cb_flv_header"); $stream->setFrameCallback(1, "cb_flv_body"); $flv->addExport("flv_header", "cb_flv_header"); $flv->addExport("flv_body", "cb_flv_body"); $flv->save("my.swf");
以上代碼生成了一個.flv
文件,并存儲在.swf
文件中。在這里,我們只是簡單地提及如何生成 FLV 文件,但是你也可以使用 Ming 的其他特性,例如在 SWF 內部嵌入流媒體或音頻。使用 Ming 來保存出視頻,是一種非常高效,且代碼簡潔的方式。
下面我們來看一些其他可以使用 PHP Ming 完成的相關操作。通過 使用 ActionScript,能夠設置播放和停止視頻、調整視頻音量,以及在播放時動態加載縮略圖。
設置播放和停止視頻
$flv_play = new SWFButton(); $flv_play->addAsEventListener(SWF_EVENT_MOUSE_UP, "function () {my_flv.play();}"); $flv_pause = new SWFButton(); $flv_pause->addAsEventListener(SWF_EVENT_MOUSE_UP, "function () {my_flv.stop();}");
調整視頻音量
$flv_increase_volume = new SWFButton(); $flv_increase_volume->addAsEventListener(SWF_EVENT_MOUSE_UP, "function () {vol = my_flv.getVolume() + 10; if (vol >100) {vol = 100;} my_flv.setVolume(vol);}"); $flv_decrease_volume = new SWFButton(); $flv_decrease_volume->addAsEventListener(SWF_EVENT_MOUSE_UP, "function () {vol = my_flv.getVolume() - 10; if (vol< 0) {vol = 0;} my_flv.setVolume(vol);}");
在播放時動態加載縮略圖
$flv_progress = new SWFMovieClip(); $flv_progress->add(new SWFShape()); $flv_progress_shape = $flv_progress->getShape(0); $flv_progress_shape->setRightFill(new SWFGradientFill(0,0xFF,0.7,0,0xFF,0.7,1)); $flv_progress_shape->movePenTo(0,0); $flv_progress_shape->drawLineTo(100,0); $var_action = "function () {this.gotoAndPlay(2);}"; $flv_progress->add(new SWFButton(), 2, array(SWF_IS_HITTEST)); $flv_progress_button = $flv_progress->getButton(1); $flv_progress_button->addAction(SWF_EVENT_MOUSE_DOWN, "function () {my_flv.seekTo(Math.floor((100*this._xmouse)/100));}");
以上是經過精簡而略帶復雜性的 PHP Ming 代碼,這里暫未作出詳細的解釋,不過不用擔心,如果你熟悉 PHP Ming 編程,就可以在不到一分鐘內理解代碼的工作流程。
綜上,PHP Ming 是一個使用非常廣泛、十分強大的視頻處理工具。除了上述的相關操作,還有很多其他功能,可以幫助用戶產生美觀且高質量的 Flash 動畫,是一位制作者的得力幫手。