最近一直在忙一个老师的项目,使用flash搭建视频播放平台,主要用于视频教学:在全屏情况下flvplayback组件发现一个致命的bug。郁闷了一个下午,头都大了。
 
今天中午在网上搜了一下,竟然有同样的情况:特将解决方案罗列下来:
 
1. 使用flash8。如果flash中没有太多的as3的代码,可以保存为flash8的格式文件,然后用flash8打开,重新导入flv视频,不会出现黑屏。
2. 使用as导入视频。黑屏问题是由于导入视频时采用的是从文件-》导入-》导入视频  这个的步骤引起的。如果采用as代码导入视频可以避免这个问题。代码如下,在有视频那一帧加入
stop();
import fl.video.*;
var my_FLVPlybk = new FLVPlayback();
my_FLVPlybk.x = 100;
my_FLVPlybk.y = 100;
my_FLVPlybk2.width = 800;
my_FLVPlybk2.height = 500;
addChild(my_FLVPlybk);
my_FLVPlybk.skin = "C:/Documents and Settings/tang/桌面/SkinOverPlaySeekStop.swf"  //flvplayback组件的皮肤
my_FLVPlybk.source = "nashui.flv";  //视频路径
my_FLVPlybk.fullScreenTakeOver = false; //因为flvplayback组件默认是自动全屏的,改变这个属性才能使它不随flash全屏
3. 不用flvplayback组件,采用NetConnection
加入如下代码
stop();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play("nashui.flv");
function asyncErrorHandler(event:AsyncErrorEvent):void
{
忽略错误
}
var vid:Video = new Video();
vid.attachNetStream(ns);
addChild(vid);
vid.height=400;
vid.width=400;
vid.x=50;
vid.y=50;