- 博客(0)
- 资源 (26)
- 收藏
- 关注
multiListView
2016-06-06
网络程序设计-ASP
本书源自尚俊杰老师的教学课件。任何人不得擅自将其用作商业用途。如有问题或建议请联系jjshang@gse.pku.edu.cn
更多资源请访问www.jjshang.com
2010-11-29
FlashVideoTechnologyAndOptimizations
Fabio Sonnati 发布了一份重要的视频文件格式详细研究报告,它与Flash视频有紧密的联系。在技术白皮书当中,他介绍了两种视频优化的技术方法,它能成功的将Flash实时视频编码提高大约20-30%。作为视频领域的一种新的技术,值得我们一读。有助于我们领会过去所没有意识到的许多知识。
白皮书简介:
白皮书分析了在Flash Player6和Flash Player7实现实时视频的技术,这是一项有助于提高关于Flash视频性能方面知识的书面技术报告。
Flash 视频技术源于 H.263标准。为了更好的理解Flash视频技术的潜能,对测试这项标准是有益的,而且在Flash中应用的主要的不同之处。白皮书 第一章主要讲了基本视频压缩标准的检测。
第二章,分析了专门的Flash实时视频压缩编码,主题是非常令人感兴趣的Flash通讯服务编码器。(这个话题对于Flash Communication Server 程序员来说是很有意思的。)
在第三和最后一章,讲述了在Flash视频编码技术标准下两种提高实时编码性能的优化方式。
如果你是视频压缩技术方面的专家,或者你对怎样提高实时视频编码的性能非常感兴趣,你可以跳过第二和第三章。
总之,这项白皮书主要是关于FlashCom编码器专项讨论。
2010-11-06
可嵌入网页的flash播放器
//--------------------------------------------------------------------------
// 初始化可能用到的变量
//--------------------------------------------------------------------------
// 设定默认打开就播放的文件名(如果在html中没有设置)
// 你可以改变'video.flv'
if(!_root.file) { file = 'video.flv' } else { file = _root.file; }
// 设定自动播放的flv录像
// 可以使用的值:'true' 或 'false'
if(_root.autoStart == 'true') {
autoStart = true;
} else {
autoStart = false;
}
// 设定flv录像的长和宽(设置成你想要的值都可以)
w = Stage.width;
h = Stage.height;
//--------------------------------------------------------------------------
// 流设置及函数
//--------------------------------------------------------------------------
// 创建并设置网络流
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
// 创建并设置声音对像
this.createEmptyMovieClip("snd", 0);
snd.attachAudio(ns);
audio = new Sound(snd);
audio.setVolume(80);
// 绑定显示
videoDisplay.attachVideo(ns);
// 从网络流中获取时间元素
ns.onMetaData = function(obj) {
this.totalTime = obj.duration;
};
// 从网络流中获取状态消息
ns.onStatus = function(object) {
if(object.code == "NetStream.Play.Stop") {
// 影片完成后返回并暂停
ns.seek(0);
if(_root.repeat == 'true') { return; }
ns.pause();
playBut._visible = true;
pauseBut._visible = false;
videoDisplay._visible = false;
playText.txt.text = "click to play";
}
};
//--------------------------------------------------------------------------
// 控制条功能
//--------------------------------------------------------------------------
// 播放影片并隐藏播放按钮
function playMovie() {
if(!isStarted) {
ns.play(file);
playText.txt.text = "loading ..";
isStarted = true;
} else {
ns.pause();
}
pauseBut._visible = true;
playBut._visible = false;
videoDisplay._visible = true;
}
// 影片暂停并隐藏暂停按钮
function pauseMovie() {
ns.pause();
playBut._visible = true;
pauseBut._visible = false;
};
// 点击影片的动作
videoBg.onPress = function() {
if(pauseBut._visible == false) {
playMovie();
} else {
pauseMovie();
}
};
// 点击暂停按钮的动作
pauseBut.onPress = function() {
pauseMovie();
};
// 点击播放按钮的动作
playBut.onPress = function() {
playMovie();
};
// 影片载入进度
progressBar.onEnterFrame = function() {
loaded = this._parent.ns.bytesLoaded;
total = this._parent.ns.bytesTotal;
if (loaded == total && loaded > 1000) {
this.loa._xscale = 100;
delete this.onEnterFrame;
} else {
this.loa._xscale = int(loaded/total*100);
}
};
// 影片播放进度
progressBar.tme.onEnterFrame = function() {
this._xscale = ns.time/ns.totalTime*100;
};
// start playhead scrubbing(看不求懂啥意思)
progressBar.loa.onPress = function() {
this.onEnterFrame = function() {
scl = (this._xmouse/this._width)*(this._xscale/100)*(this._xscale/100);
if(scl < 0.02) { scl = 0; }
ns.seek(scl*ns.totalTime);
};
};
// stop playhead scrubbing(看不求懂啥意思)
progressBar.loa.onRelease = progressBar.loa.onReleaseOutside = function () {
delete this.onEnterFrame;
pauseBut._visible == false ? videoDisplay.pause() : null;
};
// volume scrubbing(看不求懂啥意思)
volumeBar.back.onPress = function() {
this.onEnterFrame = function() {
var xm = this._xmouse;
if(xm>=0 && xm <= 20) {
this._parent.mask._width = this._xmouse;
this._parent._parent.audio.setVolume(this._xmouse*5);
}
};
}
volumeBar.back.onRelease = volumeBar.back.onReleaseOutside = function() {
delete this.onEnterFrame;
}
//--------------------------------------------------------------------------
// 调整大小并定位所有项目
//--------------------------------------------------------------------------
function setDims(w,h) {
// 设置显示尺寸
videoDisplay._width = videoBg._width = w;
videoDisplay._height = videoBg._height = h-20;
playText._x = w/2-120;
playText._y = h/2-20;
// 调整项目到左边 ..
playBut._y = pauseBut._y = progressBar._y = volumeBar._y = h-20;
progressBar._width = w-56;
volumeBar._x = w-38;
}
// 这儿你不用考虑影片的尺寸
setDims(w,h);
//--------------------------------------------------------------------------
// 就这些了,开始播放影片
//--------------------------------------------------------------------------
// 开始播放影片
// 如果没有自动开始播放,它将搜索jpg图片,并隐藏暂停按钮
pauseBut._visible = false;
if(_root.image) {
imageStr = _root.image;
} else {
imageStr = substring(file,0,file.length-3)+"jpg";
}
imageClip.loadMovie(imageStr);
if (autoStart == true) { playMovie(); }
2010-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人