当前位置:
文档之家› 在线互动媒体技术 第五章 交互案例--音乐视频播放器
在线互动媒体技术 第五章 交互案例--音乐视频播放器
5.9 Flash音乐播放器
for (i = channelLength; i > 0; i--) { n = (soundBytes.readFloat() * 100); if (i%2==0) { graphic.lineStyle(0, 0x7BD8FF); graphic.moveTo(Math.round(i/2), 20); graphic.lineTo(Math.round(i/2), n+20); graphic.endFill(); } } } private function onSoundCompleted(event:Event):void { myChannel.removeEventListener(Event.SOUND_COMPLETE, onSoundCompleted); playId ++; if (playId>=aTracks.length) { playId = 0; } loadSound(); }
5.9 Flash音乐播放器
private function releaseVolumeBar(event:MouseEvent):void { mVolume.mDrag.removeEventListener( Event.ENTER_FRAME, dragVolume); mVolume.mBg.stopDrag(); } private function dragPanBar(event:MouseEvent):void { var scroll_rect:Rectangle = new Rectangle( mPan.mBg.x, mPan.mDrag.y, mPan.mBg.width - mPan.mDrag.width ,0); mPan.mDrag.startDrag( false, scroll_rect ); mPan.mDrag.addEventListener( Event.ENTER_FRAME, dragPan); } private function dragPan(event:Event):void { setPan(); } private function releasePanBar(event:MouseEvent):void { mPan.mDrag.removeEventListener( Event.ENTER_FRAME, dragPan); mPan.mBg.stopDrag播放器
(1)音乐播放器
package { 音乐播放器的制作及音频处理
import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Loader; import flash.display.SimpleButton; import flash.display.Graphics; import flash.utils.ByteArray; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.*; import .URLLoader; import .URLRequest; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; import flash.media.SoundMixer;
5.9 Flash音乐播放器
private function showProgress(event:Event):void { var playbackPercent:Number = (myChannel.position / mySound.length); mProgress.mPlayingProgress.scaleX=playbackPercent; puteSpectrum(soundBytes, false, 0); var graphic:Graphics = mWave.graphics; graphic.clear(); var n:Number = 0; for (var i:int = 0; i < channelLength; i++) { n = (soundBytes.readFloat() * 100); if (i%2==0) { graphic.lineStyle(0, 0xFFC07B); graphic.moveTo(Math.round(i/2), 20); graphic.lineTo(Math.round(i/2), n+20); graphic.endFill(); } }
5.9 Flash音乐播放器
private function pauseSong(event:MouseEvent):void { if (playStatus == "play") { playStatus="stop"; pausePosition = myChannel.position; myChannel.stop(); myChannel.removeEventListener(Event.SOUND_COMPLETE, onSoundCompleted); } } private function stopSong():void { myChannel.stop(); myChannel.removeEventListener(Event.SOUND_COMPLETE, onSoundCompleted); } private function prevSong(event:MouseEvent):void { stopSong(); playId --; if (playId<0) { playId = aTracks.length-1; } loadSound(); }
public function MusicPlayer() { init(); }
5.9 Flash音乐播放器
private function onSoundLoaded(event:Event):void { playStatus = "play"; myChannel = mySound.play(); mySound.removeEventListener(PLETE, onSoundLoaded); myChannel.addEventListener(Event.SOUND_COMPLETE, onSoundCompleted); setVolume(); setPan(); } private function onLoadProgress(event:ProgressEvent):void { var loadedPct:Number = (event.bytesLoaded / event.bytesTotal); mProgress.mLoadingProgress.scaleX=loadedPct; mProgress.mJumpControl.scaleX=loadedPct; }
5.9 Flash音乐播放器
private function nextSong(event:MouseEvent):void { stopSong(); playId ++; if (playId>=aTracks.length) { playId = 0; } loadSound(); } private function dragVolumeBar(event:MouseEvent):void { var scroll_rect:Rectangle = new Rectangle( mVolume.mBg.x, mVolume.mDrag.y, mVolume.mBg.width mVolume.mDrag.width ,0); mVolume.mDrag.startDrag( false, scroll_rect ); mVolume.mDrag.addEventListener( Event.ENTER_FRAME, dragVolume); } private function dragVolume(event:Event):void { setVolume(); }
5.9 Flash音乐播放器
public class MusicPlayer extends Sprite {
private var nVolume:Number; private var nPan:Number=0; private var mySound:Sound = new Sound(); private var myChannel:SoundChannel= new SoundChannel(); private var myTrans:SoundTransform = new SoundTransform(); private var pausePosition:int=0; private var playStatus:String; private var aTracks:Array = ["mp3/1.mp3","mp3/2.mp3","mp3/3.mp3"]; //private var aTitles:Array = ["song 1","song 2","song 3"]; private var playId:Number = 0; private var channelLength:int = 256; private var soundBytes:ByteArray = new ByteArray();
5.9 Flash音乐播放器
private function setVolume():void { nVolume = mVolume.mDrag.x/(mVolume.mBg.widthmVolume.mDrag.width); myTrans = new SoundTransform(nVolume, nPan); myChannel.soundTransform = myTrans; } private function setPan():void { nPan = (mPan.mDrag.x-(mPan.mBg.widthmPan.mDrag.width)/2)/((mPan.mBg.width-mPan.mDrag.width)/2); myTrans = new SoundTransform(nVolume, nPan); myChannel.soundTransform = myTrans; } private function jumpMusic(event:MouseEvent):void { var xpos:Number = (mouseX-mProgress.mJumpControl.xmProgress.x)/mProgress.mJumpControl.width; var pos:Number = mySound.length * xpos; myChannel.stop(); playStatus="play"; myChannel = mySound.play(pos); myChannel.addEventListener(Event.SOUND_COMPLETE, onSoundCompleted);