|
! r# Y4 p k. G
在Flash制作过程中,导入Mp3音频经常会遇到"读文件时出现问题,一个文件或多个文件无法导入"的提示,导致音频导入失败的情况。本文介绍了一种通过Goldwave软件解决这一音频导入问题,并使用脚本语言简单、轻松实现歌词和音频的同步。
+ P& J5 A' K, j1 ]; l: w: U3 ^& ^5 }. j' C5 o7 m7 o
- J, |4 ~5 ]/ V0 J* l) M0 C. {' h+ M
首先了解一下音频的几种常见格式:
2 t+ G3 G, _9 s( s: _% q5 L( c) h
, L% F4 o) {, f; X5 Xmp3(mpeg-1 audio layer 3): 能够以高音质、低采样率对数字音频文件进行压缩。换句话说,音频文件(主要是大型文件,比如WAV文件)能够在音质丢失很小的情况下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。
) [2 }9 ?7 B! f c: Jwma(windows media audio):是微软在互联网音频、视频领域的力作。常常用于在线收听和广播的首选,wma格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。
+ ^( ?* Y! K: s9 Nwav 也叫一种波形声音文件格式,是最早的数字音频格式,被Windows 平台及其应用程序广泛支持。采用44.1kHz 的采样频率,16 位量化位数,跟CD 一样,对存储空间需求太大不便于交流和传播。
' {" L4 ~; W3 e7 w1 E9 P/ s2 o5 g2 @" d$ m0 S2 C) p
属性(采样频率): 7 D7 i- g( ^! y4 P% w
/ z2 o( z) Q4 ~+ V# a( r
5KHZ:只适合于说话声音
3 O$ ]" j3 V2 W" X11khz:相当于电话音质。是标准CD采样率的1/2,是最低的推荐品质
. `/ T3 L; Y& f7 _2 ^6 Q22khz:相当于FM广播的声音品质。相当于标准CD采样率的1/2,是供WEB播放的通用选择 F/ S! u/ S" n: |7 X
44khz:理论上的CD音质界限。标准CD采样率 3 j7 e9 u; e* H! P& _
0 y3 `% B) ^& ~3 Y: y采样位数:
* [/ f* N( J: V& ?, L7 T; G% S% b" r! V# B' R) [# U
如:一段相同的音乐信息,16位声卡能把它分为64K,80K,96K,,,等精度单位进行处理,但这个数值越大,解析度就越高,声音就越真实。 ; j7 `: k0 o, S) v
当对采样频率、采样位数(音质)二因素质量越高时,同时音乐的体积也成正比表现出越大。
8 P/ V+ |# o+ m# f' j, P3 f确定音乐被flash无法识别导入后,首先我们要考虑以下几个问题:
, ~ |$ g- }. a
# }. r4 U6 _5 W) k# {再次确认无法导入的mp3歌曲是我们需要编辑的文件。包括再次确定2点因素:音乐大小、音质) U9 K' l3 @* C7 {& T
要知道即使是相同的歌曲体积大小不同,也会出现音质的等级不同。一支质量好、体积小的音乐对Flash是很有益处的。
! o: K! L7 b' Y7 l" g5 v搜索网络音乐资源,在以上2点基础上再进行确定。并不是没有这样的可能:相等音质歌曲体积大小相差3倍左右,并可直接导入。9 v, r S+ _: f. [3 t6 B- \& h
3 {# M. }8 e3 j+ W
) R/ z9 U" Z" }! ~
下面我们打开Goldwave软件~来看看如何操作
2 i+ }3 R# w0 h. x, w4 N1 D @+ s1 Z( b& u! A9 `0 `
+ N; P6 g0 j9 v+ W! W6 ~: |6 a
音乐无法导入的问题主要是所导入MP3音乐与flash所要求格式、属性不符,那么我们在这儿通过修改音乐属性包括音层,HZ(赫兹)的改变。 # p5 l$ H7 q( B
/ v$ a6 v& }1 r打开goldwave软件。在界面找到“打开”或:文件“文件---打开”选中转换歌曲7 K6 K& [3 P/ `5 x+ i1 ]3 k
解压音乐后,找开菜单栏---“文件”。导入选择文件“另存为”,当然如果需要对音乐段进行裁剪,可通过工具栏中进行选择,这里我们不再讨论。/ S, p$ {% c& | z' P$ z8 q
在弹出菜单中,选择保存类型:MP3。
" q+ }! V' o4 Z3 N m, K打开下面的属性菜单,选择各属性并修改:采样频率:22050HZ,已相当于标准CD采样率1/2。采样位数:64KPa,已接近最真实声音,个人经验选择采样位数:32KPa就可以达到基本的音质要求。8 l, h/ U! o- R/ V0 V5 X6 ?
检查体积大小、试听音质。主要是对编辑后的体积大小检查,及音质确认:体积是否满足需要,音乐是否清晰。那有人就想,我再设置高效果会更好!~没问题!可是要知道音乐效果好了,在flash中体积就大了。从flash减肥上来说不可取,音乐只是flash一部分。当然你也可以保存更低的采样频率、采样位数,从而音乐体积更小~音质则根据每个人的需要量力而行,选择较好音质同时体积不大,这也是结合Flash对音乐的要求。音乐1~2m以上、整体swf文件大小,对下载、播放是否流利或有影响,也是主要要考虑的问题。$ _! o5 l" _, V# { q% x
回到flash软件,导入mp3,正常导入并检查库中元件。5 H& h# o1 S) K/ T' K1 p- G: R0 O
注意这里还可能可能会出现Mp3不能导入的情况,我个人的经验是将原音乐首先另存为wma格式,接着要不嫌麻烦的再次另存为Mp3,往往这样就能解决问题,具体的原因还不能解释清楚。! X$ t9 p( q( v
打开库面板,选中元件鼠标右键,选择“导出设置”。# Q$ C7 \+ P3 B
选择“声音设置”--改“默认”为“MP3”。再来一次比特率、品质设置 。# U" ~/ |, {( c5 x/ i1 b
再选择“输出”--声音设置,进行修改设置,查看swf文件已降低,当然还可以降到更低,例如16kps甚至更低,但这时音质无法保证,因此提倡合理、适当分配音乐质量及体积大小。
- t% h+ J) Z( w1 K
9 @# m6 a* M3 u( G5 H0 R; Z, e/ R! f: D. }* _
歌词和音频的同步,用于swf中的字幕制作
& m/ F' i) I; p4 h" e+ I" `% }+ J' F8 h. T H
打开库面板,点选音频文件,鼠标右键选择“链接属性”,修改标识符为“music”。
" U- P% C- b$ b/ d在时间轴上新建一个图层命名为“文本”。# i( ^9 a# b' c) d
使用文字工具输入第一句歌词,在属性面板上修改文本属性为“动态”,自变量为“x” 。
, Z1 G0 L3 \, f" J在第1帧处插入如下代码,同时执行导入库中的音频文件:3 f4 @! X4 n v& q/ y1 `
/ |, [: V+ \. @% _& b( Xinc = 0; * {+ J- G1 F) C% [5 U. v+ h
music = new Sound(); % L! L6 c- f' o' ?: _
music.attachSound("music"); % C2 b' A7 W& H0 u; {
music.start();
, k" k m1 f% H: O/ m4 p
8 H' u9 X0 C1 o, ]新建图层2,命名“as”层,第一帧处插入以下代码:4 ?: i) y% p. d( L" d
) X. B- l# q1 `
stop();
$ r& O4 H/ F5 S% wthis.onEnterFrame = function() {
: _5 ^: N% [ z" A c9 q$ l if (inc>10) { , y1 q2 O W) P3 {) t) Y
gotoAndStop(1);
% T% W! w, i' R* W7 n" L. R( \ } 3 q# w o3 Y& r& r
labelTimeList = [ 5, 11.5, 16, 21.5, 26.5 ,31.5];
9 e# w6 E) q) O3 ~! [ musictext = ["在东京铁塔第一次眺望", "看灯火模仿坠落的星光", "我终於到达但却更悲伤", "一个人完成我们的梦想"];
$ j! |- t, p* m if (getTimer()>labelTimeList[inc]*1000) { / q: |9 _4 f0 y! L
x = musictext[inc]; , ]+ G( A" r) }. H1 H
inc == inc++;
6 F2 O2 O- ]3 v" Z3 _+ U' X7 H }
+ O- K3 w0 ?* P% G( u+ |+ L& C}; 1 b, a8 f' x! k U# a4 y
this.onEnterFrame = function() { //自定义函数,当这个场景载入的时候执行自定义函数+ C$ m( Q. r: r$ ~2 i
if (getTimer()>labelTimeList[inc]*1000) { //如果以用时间大于下载时间.则X变量的值为musictext[inc], inc变量加一后在返回值给inc
5 t- X k# Y2 T3 M X x = musictext[inc]; / u3 V7 V; v) Q: C
inc == inc++;
2 j$ z4 p4 R) f* I2 w5 i }
* _: Z h* F. l% m};3 M2 Y4 H* L: f2 v4 e/ B. ]/ Q
labelTimeList=[5,11.5,16,21.5,26.5,31.5] //分别为歌词“起”的时间6 k! L$ M6 L- ]5 {' L7 e
" S% i, J9 j7 o7 L; I
Ctrl+Enter回车测试效果。0 {- z l, i' g9 ~. U
|
|