|
( C! ~0 O# V5 x4 p
在Flash制作过程中,导入Mp3音频经常会遇到"读文件时出现问题,一个文件或多个文件无法导入"的提示,导致音频导入失败的情况。本文介绍了一种通过Goldwave软件解决这一音频导入问题,并使用脚本语言简单、轻松实现歌词和音频的同步。
3 ^% W9 J4 {- i7 X8 W) R1 a$ `- z
/ Y( k8 K8 I) b; g+ O% L
: t) M! I, K& J$ r3 C0 v首先了解一下音频的几种常见格式:3 @0 U# |. w- z7 ^: u% P! [
8 e: M3 k2 `6 t B8 H) S, j
mp3(mpeg-1 audio layer 3): 能够以高音质、低采样率对数字音频文件进行压缩。换句话说,音频文件(主要是大型文件,比如WAV文件)能够在音质丢失很小的情况下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。
+ p, N$ B% M7 f8 l- V1 G9 B3 B* i# ewma(windows media audio):是微软在互联网音频、视频领域的力作。常常用于在线收听和广播的首选,wma格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。
2 A; ^9 y+ f Cwav 也叫一种波形声音文件格式,是最早的数字音频格式,被Windows 平台及其应用程序广泛支持。采用44.1kHz 的采样频率,16 位量化位数,跟CD 一样,对存储空间需求太大不便于交流和传播。
8 X ?# }- K5 @3 d. E
( D1 D8 o4 v K5 L: v7 ^" i9 C1 P属性(采样频率):
0 q K# B# d9 D6 ?2 t. H2 H( w! T
9 c+ H/ W2 n! x7 ^8 E% Z& z! y+ P5KHZ:只适合于说话声音& Z1 J% J! D6 z$ Q% ^
11khz:相当于电话音质。是标准CD采样率的1/2,是最低的推荐品质
8 s0 T+ T. E: ^22khz:相当于FM广播的声音品质。相当于标准CD采样率的1/2,是供WEB播放的通用选择
; V" }% \* g% o$ u. D: y5 N2 P44khz:理论上的CD音质界限。标准CD采样率 . Y+ E- O i, ]3 k5 q) x
7 N0 t. Q Z6 w. k, }7 D2 T2 S
采样位数: R% p* S/ P/ j# \9 T
$ _) Y- i. n1 z- _% P
如:一段相同的音乐信息,16位声卡能把它分为64K,80K,96K,,,等精度单位进行处理,但这个数值越大,解析度就越高,声音就越真实。
6 H4 ` @% `/ _1 W/ ?* v当对采样频率、采样位数(音质)二因素质量越高时,同时音乐的体积也成正比表现出越大。
* v& f( s- z, Z7 y* a确定音乐被flash无法识别导入后,首先我们要考虑以下几个问题:
4 J8 b1 \7 ^2 u' q
. ~/ h! b9 i4 n/ }9 x再次确认无法导入的mp3歌曲是我们需要编辑的文件。包括再次确定2点因素:音乐大小、音质
; I" ^" T$ w% f要知道即使是相同的歌曲体积大小不同,也会出现音质的等级不同。一支质量好、体积小的音乐对Flash是很有益处的。
/ w7 l2 `, Y1 R2 l/ u r; n搜索网络音乐资源,在以上2点基础上再进行确定。并不是没有这样的可能:相等音质歌曲体积大小相差3倍左右,并可直接导入。
2 @% P0 s! E; A, J" O$ G$ k" |3 T3 r' P* T0 z
# J" ` Z7 r- Q
下面我们打开Goldwave软件~来看看如何操作
6 r! i5 S- q) Z; @4 m! k1 A3 P* o- {( }. h5 a3 [6 W$ y: E
! _* R& V" Y) Z2 D( [9 s4 M音乐无法导入的问题主要是所导入MP3音乐与flash所要求格式、属性不符,那么我们在这儿通过修改音乐属性包括音层,HZ(赫兹)的改变。 , q# l+ T! ?% ^% H
3 [. g' s* C1 D6 `
打开goldwave软件。在界面找到“打开”或:文件“文件---打开”选中转换歌曲 o* M8 i5 n0 P- ^7 Y# X3 Q/ w
解压音乐后,找开菜单栏---“文件”。导入选择文件“另存为”,当然如果需要对音乐段进行裁剪,可通过工具栏中进行选择,这里我们不再讨论。/ R! l! n$ v' X. O
在弹出菜单中,选择保存类型:MP3。% v/ x+ d6 } \2 ~1 i0 J
打开下面的属性菜单,选择各属性并修改:采样频率:22050HZ,已相当于标准CD采样率1/2。采样位数:64KPa,已接近最真实声音,个人经验选择采样位数:32KPa就可以达到基本的音质要求。9 p* A; t+ e) k' ]: p% u4 S
检查体积大小、试听音质。主要是对编辑后的体积大小检查,及音质确认:体积是否满足需要,音乐是否清晰。那有人就想,我再设置高效果会更好!~没问题!可是要知道音乐效果好了,在flash中体积就大了。从flash减肥上来说不可取,音乐只是flash一部分。当然你也可以保存更低的采样频率、采样位数,从而音乐体积更小~音质则根据每个人的需要量力而行,选择较好音质同时体积不大,这也是结合Flash对音乐的要求。音乐1~2m以上、整体swf文件大小,对下载、播放是否流利或有影响,也是主要要考虑的问题。
# r0 ^ s( A! y/ i: D回到flash软件,导入mp3,正常导入并检查库中元件。
. [: I; i* k5 H& J1 M. Q# i4 x注意这里还可能可能会出现Mp3不能导入的情况,我个人的经验是将原音乐首先另存为wma格式,接着要不嫌麻烦的再次另存为Mp3,往往这样就能解决问题,具体的原因还不能解释清楚。
+ _; ^" M+ U* G n打开库面板,选中元件鼠标右键,选择“导出设置”。
3 l& l, e# c5 E) |# y8 s选择“声音设置”--改“默认”为“MP3”。再来一次比特率、品质设置 。
# a3 E C3 P9 J# Y D8 B! [/ q再选择“输出”--声音设置,进行修改设置,查看swf文件已降低,当然还可以降到更低,例如16kps甚至更低,但这时音质无法保证,因此提倡合理、适当分配音乐质量及体积大小。
9 P! p! y h6 N" h4 x- Z- g: ]2 Z" e$ ~9 D9 g6 l1 q
( Q6 R. R5 f) s$ A9 z! S歌词和音频的同步,用于swf中的字幕制作
8 f; l; s' S( f8 `+ m. w; N1 v2 f
$ k: U9 T8 L/ P) |2 E( E打开库面板,点选音频文件,鼠标右键选择“链接属性”,修改标识符为“music”。
) _. ?/ L. e: T- v+ @2 p/ ^. t; t在时间轴上新建一个图层命名为“文本”。2 M# G- R0 q l# I4 T( K# m+ I
使用文字工具输入第一句歌词,在属性面板上修改文本属性为“动态”,自变量为“x” 。
1 X* q( J# }0 C0 G Z" f在第1帧处插入如下代码,同时执行导入库中的音频文件:/ @( Z: D/ q# l' ^+ @
# D u3 l1 S0 ]" {+ _( Z
inc = 0;
4 {/ r. G7 c( C+ ~8 Dmusic = new Sound();
% v" _6 n- h; W- x( |; G) h4 omusic.attachSound("music");
! `5 O3 N4 ]! zmusic.start();
/ H: K- q! {7 U `1 S
( S- H" a( J9 k; }9 l% |新建图层2,命名“as”层,第一帧处插入以下代码:
7 h5 V* l4 c- c0 [- `
9 Q. I$ h' g: R' B/ Astop();
$ w) Z4 z3 `7 P6 k& Xthis.onEnterFrame = function() { 8 s, v, a* y5 j% W2 r; n
if (inc>10) {
4 ^! `- ^1 j6 R: j7 \! z% L; h; _ gotoAndStop(1); 5 H1 U, c' _; i# X1 F/ H
} # Z- P k' {8 c
labelTimeList = [ 5, 11.5, 16, 21.5, 26.5 ,31.5];
& F6 A. j& T1 C5 t musictext = ["在东京铁塔第一次眺望", "看灯火模仿坠落的星光", "我终於到达但却更悲伤", "一个人完成我们的梦想"];
% p, y% u( ], R6 y$ Y9 y if (getTimer()>labelTimeList[inc]*1000) { # ]2 X* H' \9 _2 F. O
x = musictext[inc];
+ O+ \5 i, {" p inc == inc++;
; |* O; q9 _# _ } * _& K" G9 E$ t) i- A* c
};
& H( y, n% Z5 l0 Mthis.onEnterFrame = function() { //自定义函数,当这个场景载入的时候执行自定义函数
6 t) E7 \0 h0 A+ n if (getTimer()>labelTimeList[inc]*1000) { //如果以用时间大于下载时间.则X变量的值为musictext[inc], inc变量加一后在返回值给inc1 c- V. K; ] [( _: I( ~- V, H. U
x = musictext[inc];
4 [+ d! g9 Q* j. E1 C inc == inc++; 3 H: a" U0 V& @1 w8 D) a8 c. S
} ! K! Q Y3 j) Y
};
0 e2 X2 V7 u( l5 K! _8 rlabelTimeList=[5,11.5,16,21.5,26.5,31.5] //分别为歌词“起”的时间
1 J2 W; }9 I& {) v8 { k9 D U$ h; h; k
Ctrl+Enter回车测试效果。
! f' P# S* G2 D; L |
|