gpt4 book ai didi

apache-flex - 柔性 : Dynamically create a preview image for a video

转载 作者:行者123 更新时间:2023-11-28 21:40:21 24 4
gpt4 key购买 nike

我正在使用 VideoDisplay 播放 flv、mov 和 mp4,一切正常。它们都是通过渐进式下载加载的,而不是流式传输的。我想做的是抓取一个指定的帧(比如在 10 秒标记处显示的任何帧),将其转换为位图并将该位图用作视频的预览图像。我想在运行时执行此操作,这样我就不必为要显示的每个视频创建预览图像。

关于如何执行此操作的任何想法?我不想通过播放它来伪造它 - 寻找那个特定的帧然后暂停它但我可能别无选择?

最佳答案

Ryan 和 James 是正确的——正确的方法可能是在上传/转码时提取帧。但是,如果那不是一个选项,您可以选择使用自己的某种默认/占位符图像(通用的或某种方式适合所有尚未捕获拇指的视频),并且只需使用 VideoDisplay 的 DisplayObject-ness 来抓取然后将帧上传到您的服务器,例如:

<mx:Script>
<![CDATA[

var captured:Boolean;

private function creationCompleteHandler(event:Event):void
{
videoDisplay.source = "http://yourserver/yourvideo.flv";
}

private function videoDisplay_playheadUpdate(event:VideoEvent):void
{
if (!captured && videoDisplay.playheadTime >= 10)
capture();
}

private function capture():void
{
var bmpData:BitmapData = new BitmapData(videoDisplay.width, videoDisplay.height);
bmpData.draw(videoDisplay);

captured = true;

// Now just upload the byte array to your server for the next user
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;

// ... etc.
}

]]>
</mx:Script>

<mx:VideoDisplay id="videoDisplay" playheadUpdate="videoDisplay_playheadUpdate(event)" />

同样,这可能不是最优雅的解决方案,但它确实有效。这样,第一个用户看到的是通用图像,但此后每个用户都会看到生成的缩略图。 (当然,到那时您将上传并正确关联。)有道理吗?

关于apache-flex - 柔性 : Dynamically create a preview image for a video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/504383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com