为什么我在 Android 上的基于 Flash 的视频播放器在播放几个小时后总是崩溃?
我正在编写一个基于 Flash 的 Android 应用程序。本机 android 部分使用 webview 加载 Flash swf 的唯一操作。swf 充当所有模块的容器(所有模块都写在 flash as3 中)。其中一个模块是一个简单的视频模块,它永远循环播放一组视频播放列表。
我考虑过内存泄漏,但在打印内存使用情况后(使用闪存的 System.totalMemory),结果总是在 12MB 到 14MB 左右(这对于两个视频来说似乎很正常)。我已经使用 webview 和其他第三方 swf 播放器(例如“Swf Player”和“Smart SWF Player”)测试了 flash,几个小时后都导致崩溃。
as3 代码很简单,我看不出有任何可能的原因。这是我的主要课程:
import flash.display.MovieClip;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
public class simpleVid extends MovieClip {
private var video:Video;
private var nc:NetConnection;
private var ns:NetStream;
private var uri:Array = new Array("vid1.flv", "vid2.flv");
private var counter:int = 0;
public function simpleVid() {
// constructor code
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
video = new Video();
video.attachNetStream(ns);
ns.client = {onMetaData:videoReady, NetStatusEvent:onStatusEvent};
ns.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);
ns.play(uri[counter]);
stage.addChild(video);
counter++;
counter = counter % 2;
}
public function videoReady(item:Object){
video.width = 1280;
video.height = 720;
}
public function onStatusEvent(event:NetStatusEvent):void{
if (event.info.code == "NetStream.Play.Stop") {
ns.play(uri[counter]);
counter++;
counter = counter % 2;
}
}
}
这段代码有什么我遗漏或做错了吗?
提前致谢。