Flash AS3声音视频编程
2013-03-08 17:03
169 查看
入门极好视频: http://www.enet.com.cn/eschool/video/flashas3/
《Flash CS3 AS3声音视频高级编程》共分为两章:第一章深入讲解了FLASH对于声音的编程,最后通过一个功能强大的MP3播放器进行演示,通过这一章的学习可以让你对于声音的处理有一个深入的掌握;第二章深入讲解了对于视频的处理,包括如何使用现有视频组件来控制视频。同时还讲了如何创建自己的控制外观。
声音示例:
视频示例: http://www.cuplayer.com/player/PlayerCodeCourse/2012/0914409.html
[Flex]NetStream动态加载视频利用SoundTransform控制音量
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com.sixxs.org/2008/03/01/displaying-a-video-in-flex-using-the-netconnection-netstream-and-video-classes/ -->
<mx:Application xmlns:mx="http://www.adobe.com.sixxs.org/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
viewSourceURL="srcview/index.html" xmlns:local="*"
initialize="init();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var urlArr:Array=["http://221.122.36.143.sixxs.org/oa/video/1.flv", "http://221.122.36.143/oa/video/2.flv", "http://221.122.36.143/oa/video/p2.mp4"];
public function init():void{
myVideo.urlArr = urlArr;
myVideo.total = 100000;
// Alert.show("1==>>"+myVideo.urlArr.length);
}
]]>
</mx:Script>
<local:mVideo id="myVideo"/>
</mx:Application>
第二个文件
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com.sixxs.org/2006/mxml"
creationComplete="setTransformVolume();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.SliderEvent;
private var nc:NetConnection;
private var ns:NetStream;
private var nc2:NetConnection;
private var ns2:NetStream;
private var video:Video;
[Bindable]
public var urlArr:Array=null;
[Bindable]
public var total:Number=0;
private var count:int=0;
private var finished1:int=1; //1:播放正在进行;0:播放结束
private var finished2:int=0; //1:播放正在进行;0:播放结束
private var volumeTransform:SoundTransform;
private function setTransformVolume():void{
volumeTransform=new SoundTransform();
slider.value = volumeTransform.volume;
slider.tickInterval = slider.snapInterval;
slider.liveDragging = true;
slider.addEventListener(Event.CHANGE, volumeChangeHandler);
init();
}
private function init():void
{
Alert.show("" + total);
var nsClient:Object={};
nc=new NetConnection();
nc.connect(null);
ns=new NetStream(nc);
ns.play(urlArr[count]);
ns.client=nsClient;
ns.soundTransform=volumeTransform;
ns.addEventListener(NetStatusEvent.NET_STATUS, myTest1);
video=new Video();
video.name="video1";
video.width=uic.width;
video.height=uic.height;
video.attachNetStream(ns);
if (uic.getChildByName("video1") != null)
{
uic.removeChild(uic.getChildByName("video1"));
}
count++;
}
private function volumeChangeHandler(event:SliderEvent):void {
volumeTransform.volume = slider.value;
ns.soundTransform = volumeTransform;
ns2.soundTransform = volumeTransform;
}
private function init2():void
{
var nsClient:Object={};
nc2=new NetConnection();
nc2.connect(null);
ns2=new NetStream(nc2);
ns2.play(urlArr[count]);
ns2.client=nsClient;
ns2.soundTransform=volumeTransform;
ns2.addEventListener(NetStatusEvent.NET_STATUS, myTest2);
video=new Video();
video.name="video2";
video.width=uic.width;
video.height=uic.height;
video.attachNetStream(ns2);
if (uic.getChildByName("video2") != null)
{
uic.removeChild(uic.getChildByName("video2"));
}
count++;
}
private function myTest1(event:NetStatusEvent):void
{
trace("count1==>>" + count);
trace("count1 onStatus:" + event.info.code);
if (event.info.code == "NetStream.Buffer.Full")
{
if (count == 1)
{
uic.addChild(video);
init2();
}
if (finished2 == 1)
{
ns.seek(0);
ns.pause();
}
}
else if (event.info.code == "NetStream.Play.Stop")
{
finished1=0;
finished2=1;
uic.addChild(video);
ns2.togglePause();
if (count <= urlArr.length)
{
init();
}
}
}
private function myTest2(event:NetStatusEvent):void
{
trace("count2==>>" + count);
trace("count2 onStatus:" + event.info.code);
if (event.info.code == "NetStream.Buffer.Full")
{
if (finished1 == 1)
{
ns2.seek(0);
ns2.pause();
}
}
else if (event.info.code == "NetStream.Play.Stop")
{
finished2=0;
finished1=1;
uic.addChild(video);
ns.togglePause();
if (count <= urlArr.length)
{
init2();
}
}
}
public function stopVideo():void
{
uic.stop();
}
]]>
</mx:Script>
<mx:VideoDisplay id="uic"
width="550"
height="450"
volume="{slider.value}"/>
<mx:ControlBar>
<mx:HSlider id="slider"
minimum="0.0"
maximum="1.0"
snapInterval="0.1"
tickInterval="0.1"
liveDragging="true"/>
<mx:Button label="Play/Pause"
click="uic.play();"/>
<mx:Button label="Rewind"
click="stopVideo();"/>
</mx:ControlBar>
</mx:Panel>
《Flash CS3 AS3声音视频高级编程》共分为两章:第一章深入讲解了FLASH对于声音的编程,最后通过一个功能强大的MP3播放器进行演示,通过这一章的学习可以让你对于声音的处理有一个深入的掌握;第二章深入讲解了对于视频的处理,包括如何使用现有视频组件来控制视频。同时还讲了如何创建自己的控制外观。
声音示例:
[AS3.0编程教学]最全的声音控制方法
http://jingyan.baidu.com/article/a948d651bc90a60a2ccd2e4c.html
视频示例: http://www.cuplayer.com/player/PlayerCodeCourse/2012/0914409.html[Flex]NetStream动态加载视频利用SoundTransform控制音量
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com.sixxs.org/2008/03/01/displaying-a-video-in-flex-using-the-netconnection-netstream-and-video-classes/ -->
<mx:Application xmlns:mx="http://www.adobe.com.sixxs.org/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
viewSourceURL="srcview/index.html" xmlns:local="*"
initialize="init();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var urlArr:Array=["http://221.122.36.143.sixxs.org/oa/video/1.flv", "http://221.122.36.143/oa/video/2.flv", "http://221.122.36.143/oa/video/p2.mp4"];
public function init():void{
myVideo.urlArr = urlArr;
myVideo.total = 100000;
// Alert.show("1==>>"+myVideo.urlArr.length);
}
]]>
</mx:Script>
<local:mVideo id="myVideo"/>
</mx:Application>
第二个文件
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com.sixxs.org/2006/mxml"
creationComplete="setTransformVolume();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.SliderEvent;
private var nc:NetConnection;
private var ns:NetStream;
private var nc2:NetConnection;
private var ns2:NetStream;
private var video:Video;
[Bindable]
public var urlArr:Array=null;
[Bindable]
public var total:Number=0;
private var count:int=0;
private var finished1:int=1; //1:播放正在进行;0:播放结束
private var finished2:int=0; //1:播放正在进行;0:播放结束
private var volumeTransform:SoundTransform;
private function setTransformVolume():void{
volumeTransform=new SoundTransform();
slider.value = volumeTransform.volume;
slider.tickInterval = slider.snapInterval;
slider.liveDragging = true;
slider.addEventListener(Event.CHANGE, volumeChangeHandler);
init();
}
private function init():void
{
Alert.show("" + total);
var nsClient:Object={};
nc=new NetConnection();
nc.connect(null);
ns=new NetStream(nc);
ns.play(urlArr[count]);
ns.client=nsClient;
ns.soundTransform=volumeTransform;
ns.addEventListener(NetStatusEvent.NET_STATUS, myTest1);
video=new Video();
video.name="video1";
video.width=uic.width;
video.height=uic.height;
video.attachNetStream(ns);
if (uic.getChildByName("video1") != null)
{
uic.removeChild(uic.getChildByName("video1"));
}
count++;
}
private function volumeChangeHandler(event:SliderEvent):void {
volumeTransform.volume = slider.value;
ns.soundTransform = volumeTransform;
ns2.soundTransform = volumeTransform;
}
private function init2():void
{
var nsClient:Object={};
nc2=new NetConnection();
nc2.connect(null);
ns2=new NetStream(nc2);
ns2.play(urlArr[count]);
ns2.client=nsClient;
ns2.soundTransform=volumeTransform;
ns2.addEventListener(NetStatusEvent.NET_STATUS, myTest2);
video=new Video();
video.name="video2";
video.width=uic.width;
video.height=uic.height;
video.attachNetStream(ns2);
if (uic.getChildByName("video2") != null)
{
uic.removeChild(uic.getChildByName("video2"));
}
count++;
}
private function myTest1(event:NetStatusEvent):void
{
trace("count1==>>" + count);
trace("count1 onStatus:" + event.info.code);
if (event.info.code == "NetStream.Buffer.Full")
{
if (count == 1)
{
uic.addChild(video);
init2();
}
if (finished2 == 1)
{
ns.seek(0);
ns.pause();
}
}
else if (event.info.code == "NetStream.Play.Stop")
{
finished1=0;
finished2=1;
uic.addChild(video);
ns2.togglePause();
if (count <= urlArr.length)
{
init();
}
}
}
private function myTest2(event:NetStatusEvent):void
{
trace("count2==>>" + count);
trace("count2 onStatus:" + event.info.code);
if (event.info.code == "NetStream.Buffer.Full")
{
if (finished1 == 1)
{
ns2.seek(0);
ns2.pause();
}
}
else if (event.info.code == "NetStream.Play.Stop")
{
finished2=0;
finished1=1;
uic.addChild(video);
ns.togglePause();
if (count <= urlArr.length)
{
init2();
}
}
}
public function stopVideo():void
{
uic.stop();
}
]]>
</mx:Script>
<mx:VideoDisplay id="uic"
width="550"
height="450"
volume="{slider.value}"/>
<mx:ControlBar>
<mx:HSlider id="slider"
minimum="0.0"
maximum="1.0"
snapInterval="0.1"
tickInterval="0.1"
liveDragging="true"/>
<mx:Button label="Play/Pause"
click="uic.play();"/>
<mx:Button label="Rewind"
click="stopVideo();"/>
</mx:ControlBar>
</mx:Panel>
相关文章推荐
- HTML中添加flash、视频、声音
- 【AS3】Flash读取XML内容的方法(附加载一个视频的例子)
- ffmpeg编程(三)把视频的声音播放出来
- Flash 编程视频教程
- 在使用webView播放flash或视频文件时无法关闭声音的问题
- Windows 7播放各大视频网站Flash视频没有声音
- flash as2和as3添加外部声音
- Socket编程------TCP文件传输(文档、声音、图片、视频和压缩包等)
- Flash ActionScript3 声音编程
- SWFtoVideoPro工具flash的SWF到视频文件没有声音的问题(已测试)
- 【量化小讲堂-Python&Pandas系列22】最优雅的Python编程方式:Jupyter Notebook视频教程
- 简单获取各大视频网站的flash地址
- iPhone6 微信视频通话没有声音
- as3导入声音的事件测试
- as3编程环境搭建
- iOS设备播放mkv格式视频无声音解决
- FLASH AS3相册播放器
- as3声音控制
- 关于Linux的视频编程(v4l2编程) .
- Flash 视频蓬勃发展