2
import fl.video.*;
var player:FLVPlayback = new FLVPlayback();
addChild(player);
player.skin = "someSkin.swf";
player.source = "http://someDomian/some.flv";

这是代码。我只是从服务器加载和播放一些 flv,当我通过 Flash 测试它时(只需按 ctrl+enter),视频将在视频的大约 90% 处停止并发送 COMPLETE 事件。有谁知道为什么?再试一次,视频停止的时间是一样的,都在90%左右。我搜索了它,并尝试更改播放器的 playheadUpdateInterval,显式设置 totalTime 或将 bufferTime 设置得更长。所有这些解决方案都没有区别。我试图从同一台服务器加载另一部电影,同样的问题。服务器有没有可能出现问题?

编辑:我将 swf 发送给其他人,视频按预期播放。然后另一个人,同样的结果。所以,我猜我的设置有问题?是否有一些设置会导致这个奇怪的动作?但是当我在笔记本电脑上尝试时,视频意外停止。为什么这似乎适用于除我之外的每个人的计算机?

before CLOSE:最后我的同事发现了导致这个问题的奇怪原因,如果将发布设置更改为 FP10 & 10.1 或 FP9,它会按我们预期的那样工作。FP10.2 及更高版本,该服务器上的视频似乎没有找到结局的天赋。视频是 H.264/AAC,如果我将它们转换为 VP60/MP3,所有 FP 版本都可以使用。由于我无法修改有关编解码器的设置,我将只更改发布设置并保留编解码器的事情。虽然我对此感到沮丧,但如果你看到这个并且很幸运你碰巧知道为什么会出现“早期完成”的编解码器,请告诉我。

4

1 回答 1

0

问题可能出在 .FLV 文件上,有时在将任何视频文件(AVI、MOV、MP4、3GP、WMV)编码为 .FLV 格式时可能会出现问题,从而导致跳帧。如果效果良好,请尝试使用其他 .FLV 文件的代码,然后您需要重新编码您的 FLV 文件。

您还可以尝试通过跟踪视频播放进度来捕获视频完成事件。

import fl.video.*;

var player:FLVPlayback = new FLVPlayback();
addChild(player);
player.skin = "someSkin.swf";
player.source = "http://someDomian/some.flv";

addEventListener(Event.ENTER_FRAME, enterFrameHandler);

function enterFrameHandler(event:Event):void {

    if(player.playheadPercentage>=99)
    {

      //On Video Playback Complete Actions here     
    }
}
于 2012-12-13T18:44:17.563 回答