|
|
; y7 q: ]" Y r0 t5 f$ l# q5 i& i
在Flash制作过程中,导入Mp3音频经常会遇到"读文件时出现问题,一个文件或多个文件无法导入"的提示,导致音频导入失败的情况。本文介绍了一种通过Goldwave软件解决这一音频导入问题,并使用脚本语言简单、轻松实现歌词和音频的同步。
+ F: \: E' Y6 Y E f1 ]. C ~" i
1 U' C3 |/ P3 t , \! ? y4 [" q, n; s
! P5 B' Z4 L) E# D( p
首先了解一下音频的几种常见格式:
/ N3 R4 i& o- i/ w
7 a) `- M! Z3 X5 wmp3(mpeg-1 audio layer 3): 能够以高音质、低采样率对数字音频文件进行压缩。换句话说,音频文件(主要是大型文件,比如WAV文件)能够在音质丢失很小的情况下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。 - |1 n: S7 G/ g8 u
wma(windows media audio):是微软在互联网音频、视频领域的力作。常常用于在线收听和广播的首选,wma格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。 8 Y- U9 g' P& T% B$ `1 j
wav 也叫一种波形声音文件格式,是最早的数字音频格式,被Windows 平台及其应用程序广泛支持。采用44.1kHz 的采样频率,16 位量化位数,跟CD 一样,对存储空间需求太大不便于交流和传播。
5 }3 E; B6 z% v% y; r; s
: E4 q' d! {4 U% G) g* A. q属性(采样频率):
" M2 \) z( S! N8 C, Y* _
( ?5 G: `0 E% V1 _9 b4 N9 h+ P5KHZ:只适合于说话声音
$ p2 J; T6 E9 V8 l. Q$ j2 `11khz:相当于电话音质。是标准CD采样率的1/2,是最低的推荐品质# }/ z3 [/ c9 k# g: x. D8 P. l
22khz:相当于FM广播的声音品质。相当于标准CD采样率的1/2,是供WEB播放的通用选择
& c. O X, @5 ~* ?44khz:理论上的CD音质界限。标准CD采样率
% x! R# }& x2 t. Y
' Y2 ~! a' ^* Y采样位数:( ^7 f+ p/ q. Q5 ^/ ~
3 Y' T; z. \8 I3 i5 O如:一段相同的音乐信息,16位声卡能把它分为64K,80K,96K,,,等精度单位进行处理,但这个数值越大,解析度就越高,声音就越真实。
2 P. {& u$ j0 @' L, ^% [ _当对采样频率、采样位数(音质)二因素质量越高时,同时音乐的体积也成正比表现出越大。
$ C* F& R' m1 S5 q. P: f确定音乐被flash无法识别导入后,首先我们要考虑以下几个问题:
0 n8 h, R+ Y9 Z) u& z6 t6 ]: }7 C$ B2 R3 K# B- l7 c& C
再次确认无法导入的mp3歌曲是我们需要编辑的文件。包括再次确定2点因素:音乐大小、音质8 E4 q3 s" K6 B
要知道即使是相同的歌曲体积大小不同,也会出现音质的等级不同。一支质量好、体积小的音乐对Flash是很有益处的。
* \4 `# `2 D0 {9 p) t: l4 y6 }搜索网络音乐资源,在以上2点基础上再进行确定。并不是没有这样的可能:相等音质歌曲体积大小相差3倍左右,并可直接导入。$ D" W$ d/ N1 f
/ H X6 B: w7 ~9 t) U; q9 N- W1 A
: T. y5 P$ v: Q下面我们打开Goldwave软件~来看看如何操作
/ z2 N) x: r5 S- U* P5 l7 E+ O- I1 ~3 o5 k
9 \! Z1 y1 u+ f" n( U
' y4 c- q, F7 W# O+ p% c+ y音乐无法导入的问题主要是所导入MP3音乐与flash所要求格式、属性不符,那么我们在这儿通过修改音乐属性包括音层,HZ(赫兹)的改变。
, a; D R5 o: \: K+ w* c8 E/ c
: z9 w* ?; c8 r {( M打开goldwave软件。在界面找到“打开”或:文件“文件---打开”选中转换歌曲$ g# l# |5 k8 e" a
解压音乐后,找开菜单栏---“文件”。导入选择文件“另存为”,当然如果需要对音乐段进行裁剪,可通过工具栏中进行选择,这里我们不再讨论。. H8 Q/ z3 p4 l
在弹出菜单中,选择保存类型:MP3。
" k+ e9 T0 \9 R打开下面的属性菜单,选择各属性并修改:采样频率:22050HZ,已相当于标准CD采样率1/2。采样位数:64KPa,已接近最真实声音,个人经验选择采样位数:32KPa就可以达到基本的音质要求。
' h. R* f2 P# \) f/ f' B# ~检查体积大小、试听音质。主要是对编辑后的体积大小检查,及音质确认:体积是否满足需要,音乐是否清晰。那有人就想,我再设置高效果会更好!~没问题!可是要知道音乐效果好了,在flash中体积就大了。从flash减肥上来说不可取,音乐只是flash一部分。当然你也可以保存更低的采样频率、采样位数,从而音乐体积更小~音质则根据每个人的需要量力而行,选择较好音质同时体积不大,这也是结合Flash对音乐的要求。音乐1~2m以上、整体swf文件大小,对下载、播放是否流利或有影响,也是主要要考虑的问题。
; _0 P" K3 |3 W回到flash软件,导入mp3,正常导入并检查库中元件。
1 b Q- @& s, G' Q注意这里还可能可能会出现Mp3不能导入的情况,我个人的经验是将原音乐首先另存为wma格式,接着要不嫌麻烦的再次另存为Mp3,往往这样就能解决问题,具体的原因还不能解释清楚。
8 d8 g5 |- e; p7 M; N; _打开库面板,选中元件鼠标右键,选择“导出设置”。
1 J) o+ w( ~% X/ @; I选择“声音设置”--改“默认”为“MP3”。再来一次比特率、品质设置 。
5 E5 B& |- t4 k. D5 @! ^. u$ {8 X再选择“输出”--声音设置,进行修改设置,查看swf文件已降低,当然还可以降到更低,例如16kps甚至更低,但这时音质无法保证,因此提倡合理、适当分配音乐质量及体积大小。+ d3 v4 D0 G% C+ G4 j" U# q
: r& i! P) r) p6 V/ v) U
) N# y" G4 w2 j8 S; \
歌词和音频的同步,用于swf中的字幕制作
2 a7 h9 Z$ O5 k h' O( ~
" ?; t4 t# `$ b9 z打开库面板,点选音频文件,鼠标右键选择“链接属性”,修改标识符为“music”。0 ^7 `( q# z6 d8 Y
在时间轴上新建一个图层命名为“文本”。
u$ G( x+ P8 c% z使用文字工具输入第一句歌词,在属性面板上修改文本属性为“动态”,自变量为“x” 。* Z Q* Z: T/ l3 [% r
在第1帧处插入如下代码,同时执行导入库中的音频文件:) M4 |( h) o- G, V
0 i* z4 a% i# Z: k; A
inc = 0; - B* `7 s& `7 g8 B
music = new Sound();
; F5 I7 a$ r2 T8 \/ K( A1 lmusic.attachSound("music");
0 c* H1 l* |8 J8 a& P4 `music.start();
+ u% y: E2 Q n4 r
/ Z1 ^* o# c" Z2 v. h新建图层2,命名“as”层,第一帧处插入以下代码:2 S' l, D% a$ l2 ]" o: c1 C
* r7 z5 C% s6 l6 g8 `stop();
8 u) f6 P: A; }6 @6 M) Mthis.onEnterFrame = function() { 2 `- m: t- O$ j& j
if (inc>10) {
! \4 e' ~2 s" S0 X gotoAndStop(1); 5 @+ ?4 p1 E9 E8 `0 a/ q
}
2 b3 x2 V' v+ V3 W( P' b7 ?4 y labelTimeList = [ 5, 11.5, 16, 21.5, 26.5 ,31.5]; + D5 l' Z/ r0 B4 R9 [
musictext = ["在东京铁塔第一次眺望", "看灯火模仿坠落的星光", "我终於到达但却更悲伤", "一个人完成我们的梦想"]; ' G. \7 ^, `& R8 k: K8 k9 A9 S- G. ^
if (getTimer()>labelTimeList[inc]*1000) {
) g4 i/ ^0 P- d x = musictext[inc];
7 X' j; Y; Q0 r0 \9 s4 o/ b inc == inc++; 8 W+ `+ @. }( k0 N
}
E8 U* ~) R" r* H" `};
. W3 q* L& }) k3 y+ b# r" y' Y8 Fthis.onEnterFrame = function() { //自定义函数,当这个场景载入的时候执行自定义函数
# \% J; ?8 E6 S3 B# C if (getTimer()>labelTimeList[inc]*1000) { //如果以用时间大于下载时间.则X变量的值为musictext[inc], inc变量加一后在返回值给inc
$ h0 n5 w! m$ O' {+ X4 c7 _+ i) Q x = musictext[inc]; 3 n% R/ v7 O; ~0 s% L6 R( t5 {
inc == inc++; 7 ^1 F3 v! z1 L& L# L
}
( D! L/ P! e) A/ X: o! h. l1 K7 j};" o7 b- R/ Q) ^7 c- t3 D0 k
labelTimeList=[5,11.5,16,21.5,26.5,31.5] //分别为歌词“起”的时间
7 J* j+ k6 C: Z: p# O/ Z/ c5 G3 X0 E& r% C- t# f. h3 }9 @- c+ l
Ctrl+Enter回车测试效果。
5 p. z" J2 Q# S9 ?) b |
|