AS3中音频、视频的播放控制
2008-05-12 00:07
465 查看
耐心的看完lynda.com出版的《ActionScript 3.0 in Flash CS3 Professional Essential Training》,教的东西都很初级,但是很通俗易懂,音、视、代码并茂,充分体现“because knowledge must be free"的精神,o(∩_∩)o...,要是是中文的就好了,这是其中的音频和视频的播放控制代码,在CS3中它们的播放相差较大,整理一番,供以后参考。
【音频部分:】
要点:URLRequest,Sound,SoundChannel,SoundTransform
注意:flash CS3中的mp3好像不支持320kbps,放不出来的时候要考虑这一点。
重要概念和术语:
波幅 (Amplitude):声音波形上的点与零或平衡线之间的距离。
比特率 (Bit rate):每秒为声音文件编码或流式传输的数据量。对于 mp3 文件,比特率通常是以每秒千位数 (kbps) 来表述的。较高的比特率通常意味着较高品质的声音波形。
缓冲 (Buffering):在回放之前接收和存储声音数据。
mp3:MPEG-1 Audio Layer 3 (mp3) 是一种常用的声音压缩格式。
声相 (Panning):将音频信号放在立体声声场中左声道和右声道之间。
峰值 (Peak):波形中的最高点。
采样率 (Sampling rate):定义在生成数字信号时每秒从模拟音频信号采集的样本数。标准光盘音频的采样率为 44.1 kHz 或每秒 44,100 个样本。
流式传输 (Streaming):此过程是指,在仍从服务器加载声音文件或视频文件的后面部分的同时播放该文件的前面部分。
音量 (Volume):声音的响度。
波形 (Waveform):声音信号波幅随时间变化的图形形状。
补充:音频控制部分缺乏播放完毕控制,这是kinghill的播放器控制代码(注意函数名称不同)
//声音完毕的处理
function soundEnd(event:Event):void {
pause_btn.visible=false;
pause_btn.removeEventListener(MouseEvent.CLICK,pauseSound);
play_btn.visible=true;
play_btn.addEventListener(MouseEvent.CLICK,playSound);
}
function playSound(event:MouseEvent):void {
soundControl=sound.play(soundPosition);
soundControl.addEventListener(Event.SOUND_COMPLETE,soundEnd);//监测声音是否完毕,放在声音播放之后
play_btn.visible=false;
play_btn.removeEventListener(MouseEvent.CLICK,playSound);
pause_btn.visible=true;
pause_btn.addEventListener(MouseEvent.CLICK,pauseSound);
}
代码范例:
var soundReq:URLRequest = new URLRequest("free_fade.mp3");
var sound:Sound = new Sound();
var soundControl:SoundChannel = new SoundChannel();
var volumeControl:SoundTransform = new SoundTransform();
var resumeTime:Number = 0;
sound.load(soundReq);
sound.addEventListener(Event.COMPLETE, onComplete);
up_btn.addEventListener(MouseEvent.CLICK, increaseVolume);
down_btn.addEventListener(MouseEvent.CLICK, decreaseVolume);
function onComplete(event:Event):void
{
play_btn.addEventListener(MouseEvent.CLICK, playSound);
stop_btn.addEventListener(MouseEvent.CLICK, stopSound);
}
function playSound(event:MouseEvent):void
{
soundControl = sound.play(resumeTime);
pause_btn.visible = true;
pause_btn.addEventListener(MouseEvent.CLICK, pauseSound);
play_btn.visible = false;
play_btn.removeEventListener(MouseEvent.CLICK, playSound);
}
function pauseSound(event:MouseEvent):void
{
resumeTime = soundControl.position;
soundControl.stop();
play_btn.visible = true;
play_btn.addEventListener(MouseEvent.CLICK, playSound);
pause_btn.visible = false;
pause_btn.removeEventListener(MouseEvent.CLICK, pauseSound);
}
function stopSound(event:MouseEvent):void
{
soundControl.stop();
play_btn.visible = true;
play_btn.addEventListener(MouseEvent.CLICK, playSound);
pause_btn.visible = false;
pause_btn.removeEventListener(MouseEvent.CLICK, pauseSound);
}
function increaseVolume(event:MouseEvent):void
{
volumeControl.volume += .5;
soundControl.soundTransform = volumeControl;
}
function decreaseVolume(event:MouseEvent):void
{
volumeControl.volume -= .5;
soundControl.soundTransform = volumeControl;
}
pause_btn.visible = false;
【视频部分:】
要点:NetConnection,NetStream,Video ,onMetaData
原理:
代码范例:
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
var videoStream:NetStream = new NetStream(videoConnection);
videoStream.play("short_jump.flv");
var metaListener:Object = new Object();
metaListener.onMetaData = onMetaData;
videoStream.client = metaListener;
var video:Video = new Video();
video.attachNetStream(videoStream);
addChild(video);
function onMetaData(data:Object):void
{
play_btn.addEventListener(MouseEvent.CLICK, playMovie);
stop_btn.addEventListener(MouseEvent.CLICK, stopMovie);
}
function playMovie(event:MouseEvent):void
{
videoStream.play("short_jump.flv");
}
function stopMovie(event:MouseEvent):void
{
videoStream.pause();
}
【音频部分:】
要点:URLRequest,Sound,SoundChannel,SoundTransform
注意:flash CS3中的mp3好像不支持320kbps,放不出来的时候要考虑这一点。
重要概念和术语:
波幅 (Amplitude):声音波形上的点与零或平衡线之间的距离。
比特率 (Bit rate):每秒为声音文件编码或流式传输的数据量。对于 mp3 文件,比特率通常是以每秒千位数 (kbps) 来表述的。较高的比特率通常意味着较高品质的声音波形。
缓冲 (Buffering):在回放之前接收和存储声音数据。
mp3:MPEG-1 Audio Layer 3 (mp3) 是一种常用的声音压缩格式。
声相 (Panning):将音频信号放在立体声声场中左声道和右声道之间。
峰值 (Peak):波形中的最高点。
采样率 (Sampling rate):定义在生成数字信号时每秒从模拟音频信号采集的样本数。标准光盘音频的采样率为 44.1 kHz 或每秒 44,100 个样本。
流式传输 (Streaming):此过程是指,在仍从服务器加载声音文件或视频文件的后面部分的同时播放该文件的前面部分。
音量 (Volume):声音的响度。
波形 (Waveform):声音信号波幅随时间变化的图形形状。
补充:音频控制部分缺乏播放完毕控制,这是kinghill的播放器控制代码(注意函数名称不同)
//声音完毕的处理
function soundEnd(event:Event):void {
pause_btn.visible=false;
pause_btn.removeEventListener(MouseEvent.CLICK,pauseSound);
play_btn.visible=true;
play_btn.addEventListener(MouseEvent.CLICK,playSound);
}
function playSound(event:MouseEvent):void {
soundControl=sound.play(soundPosition);
soundControl.addEventListener(Event.SOUND_COMPLETE,soundEnd);//监测声音是否完毕,放在声音播放之后
play_btn.visible=false;
play_btn.removeEventListener(MouseEvent.CLICK,playSound);
pause_btn.visible=true;
pause_btn.addEventListener(MouseEvent.CLICK,pauseSound);
}
代码范例:
var soundReq:URLRequest = new URLRequest("free_fade.mp3");
var sound:Sound = new Sound();
var soundControl:SoundChannel = new SoundChannel();
var volumeControl:SoundTransform = new SoundTransform();
var resumeTime:Number = 0;
sound.load(soundReq);
sound.addEventListener(Event.COMPLETE, onComplete);
up_btn.addEventListener(MouseEvent.CLICK, increaseVolume);
down_btn.addEventListener(MouseEvent.CLICK, decreaseVolume);
function onComplete(event:Event):void
{
play_btn.addEventListener(MouseEvent.CLICK, playSound);
stop_btn.addEventListener(MouseEvent.CLICK, stopSound);
}
function playSound(event:MouseEvent):void
{
soundControl = sound.play(resumeTime);
pause_btn.visible = true;
pause_btn.addEventListener(MouseEvent.CLICK, pauseSound);
play_btn.visible = false;
play_btn.removeEventListener(MouseEvent.CLICK, playSound);
}
function pauseSound(event:MouseEvent):void
{
resumeTime = soundControl.position;
soundControl.stop();
play_btn.visible = true;
play_btn.addEventListener(MouseEvent.CLICK, playSound);
pause_btn.visible = false;
pause_btn.removeEventListener(MouseEvent.CLICK, pauseSound);
}
function stopSound(event:MouseEvent):void
{
soundControl.stop();
play_btn.visible = true;
play_btn.addEventListener(MouseEvent.CLICK, playSound);
pause_btn.visible = false;
pause_btn.removeEventListener(MouseEvent.CLICK, pauseSound);
}
function increaseVolume(event:MouseEvent):void
{
volumeControl.volume += .5;
soundControl.soundTransform = volumeControl;
}
function decreaseVolume(event:MouseEvent):void
{
volumeControl.volume -= .5;
soundControl.soundTransform = volumeControl;
}
pause_btn.visible = false;
【视频部分:】
要点:NetConnection,NetStream,Video ,onMetaData
原理:
代码范例:
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
var videoStream:NetStream = new NetStream(videoConnection);
videoStream.play("short_jump.flv");
var metaListener:Object = new Object();
metaListener.onMetaData = onMetaData;
videoStream.client = metaListener;
var video:Video = new Video();
video.attachNetStream(videoStream);
addChild(video);
function onMetaData(data:Object):void
{
play_btn.addEventListener(MouseEvent.CLICK, playMovie);
stop_btn.addEventListener(MouseEvent.CLICK, stopMovie);
}
function playMovie(event:MouseEvent):void
{
videoStream.play("short_jump.flv");
}
function stopMovie(event:MouseEvent):void
{
videoStream.pause();
}
相关文章推荐
- 安卓使用videoview进行音频、视频播放,及播放控制
- video.js不能控制本地视频或者音频播放时长
- [前端] 音频/视频播放控制
- 猎豹MFC--MCI媒体控制接口--播放各种音频视频录音
- as3 外部flv视频的播放控制
- MediaPlayer类可用于控制音频/视频文件或流的播放。关于如何使用这个类的方法还可以阅读VideoView类的文档。
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- 实验6 在应用程序中播放音频和视频
- 实验6 在应用程序中播放音频和视频
- 在应用程序中播放音频和视频
- 如何让音频跟视频在ios跟android上自动播放
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发--音频播放、录音、视频播放、拍照、视频录制
- 照相、从相册上取照片、播放音频、播放本地视频、播放网络视频、MPMoviePlayerController
- iOS 后台 播放h5 视频、音频  解决方案
- Unity实现RawImage图片显示视频 、灵活配置控制视频播放
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- 使用系统类播放音频和视频
- 手机影音第八天 控制视频播放页面的上面与下边的控制器布局的消失与隐藏