国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

Flash AS3.0構建聲音可視化程序(波形圖)教程

2020-07-17 13:06:34
字體:
來源:轉載
供稿:網友

本例為Flash AS3.0實例教程,在教程中我們將學習運用SoundMixer.computeSpectrum() 方法來構建簡單的聲音可視化程序(即波形圖),希望能給朋友們帶來幫助~~

AS3.0構建簡單的聲音可視化程序(波型圖)

Flash AS3.0實例:聲音可視化波形圖

使用 SoundMixer.computeSpectrum() 方法來顯示聲音波形圖


復制代碼
代碼如下:
import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
const PLOT_HEIGHT:int = 200;
const CHANNEL_LENGTH:int = 256;
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("月亮之上.mp3"); //配置聲音源文件地址(此為本地,可配置遠程)
snd.load(req);
var channel:SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
snd.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
var bytes:ByteArray = new ByteArray();
function onEnterFrame(event:Event):void
{
SoundMixer.computeSpectrum(bytes, false, 0);

var g:Graphics = this.graphics;

g.clear();
g.lineStyle(0, 0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0, PLOT_HEIGHT);

var n:Number = 0;

// left channel
for (var i:int = 0; i < CHANNEL_LENGTH; i++)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
g.endFill();

// right channel
g.lineStyle(0, 0xCC0066);
g.beginFill(0xCC0066, 0.5);
g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);

for (i = CHANNEL_LENGTH; i > 0; i--)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}
function onPlaybackComplete(event:Event)
{
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}

先加載并播放一個聲音文件,然后在播放聲音的同時偵聽將觸發 onEnterFrame() 方法的 Event.ENTER_FRAME 事件。onEnterFrame() 方法先調用 SoundMixer.computeSpectrum() 方法,后者將聲音波形數據存儲在 bytes ByteArray 對象中。

聲音波形是使用矢量繪圖 API 繪制的。 for 循環將循環訪問第一批 256 個數據值(表示左立體聲聲道),然后使用 Graphics.lineTo() 方法繪制一條從每個點到下一個點的直線。第二個 for 循環將循環訪問下一批 256 個值,此時按相反的順序(從右到左)對它們進行繪制。生成的波形圖可能會產生有趣的鏡像圖像效果。

以上就是Flash AS3.0構建聲音可視化程序(波形圖)教程,希望大家喜歡!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南皮县| 宜昌市| 灵丘县| 乡城县| 鄢陵县| 台湾省| 浦北县| 莎车县| 东辽县| 高邮市| 蓬莱市| 广丰县| 崇州市| 淮阳县| 上虞市| 响水县| 屏东县| 建瓯市| 苗栗市| 洛宁县| 横山县| 石台县| 加查县| 英超| 乌拉特后旗| 武强县| 唐河县| 柘城县| 大洼县| 永吉县| 交口县| 澎湖县| 固始县| 克东县| 丰台区| 浦城县| 德安县| 双鸭山市| 高陵县| 格尔木市| 千阳县|