|
1 M+ w: A5 s' Q+ i1 n* p4 I在Flash制作过程中,导入Mp3音频经常会遇到"读文件时出现问题,一个文件或多个文件无法导入"的提示,导致音频导入失败的情况。本文介绍了一种通过Goldwave软件解决这一音频导入问题,并使用脚本语言简单、轻松实现歌词和音频的同步。
2 \+ T5 E% C% C, I, W
' u. k7 E5 p' M3 Q4 F6 a
! ]' p: ~: D& T, h
& ^0 t- c- X$ W; r0 J; b0 b* G首先了解一下音频的几种常见格式:/ X- @8 L7 I( O; c# x4 {$ V
, e" g- M/ d# J9 j: N" [9 y* K
mp3(mpeg-1 audio layer 3): 能够以高音质、低采样率对数字音频文件进行压缩。换句话说,音频文件(主要是大型文件,比如WAV文件)能够在音质丢失很小的情况下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。 % r3 B0 o( G2 M: T
wma(windows media audio):是微软在互联网音频、视频领域的力作。常常用于在线收听和广播的首选,wma格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。 / [/ q1 p9 A3 A# k6 `* E6 M
wav 也叫一种波形声音文件格式,是最早的数字音频格式,被Windows 平台及其应用程序广泛支持。采用44.1kHz 的采样频率,16 位量化位数,跟CD 一样,对存储空间需求太大不便于交流和传播。
- T) S4 i$ w2 [
Y2 c2 {& f% Z b( g属性(采样频率):
4 O+ j# v1 u: O. C0 U! B/ C
6 r$ v; ?0 O" s# N; c" n) `) i7 W1 G1 C5KHZ:只适合于说话声音3 `/ E }% l+ G% E6 q. `+ w
11khz:相当于电话音质。是标准CD采样率的1/2,是最低的推荐品质
+ Z; a+ I( {) s7 }9 y, L- ?22khz:相当于FM广播的声音品质。相当于标准CD采样率的1/2,是供WEB播放的通用选择9 ]; m1 F% x- ^
44khz:理论上的CD音质界限。标准CD采样率
. U* m9 x# Y B; x3 g
% o: u/ q& d4 l2 f# J3 D采样位数:
5 P U! k0 o+ S I
: e: {* e! C6 J7 @2 w+ q如:一段相同的音乐信息,16位声卡能把它分为64K,80K,96K,,,等精度单位进行处理,但这个数值越大,解析度就越高,声音就越真实。
7 ]" U0 q# d2 d4 H' T# U当对采样频率、采样位数(音质)二因素质量越高时,同时音乐的体积也成正比表现出越大。
# j# E- B/ ?9 T7 v: f6 Z确定音乐被flash无法识别导入后,首先我们要考虑以下几个问题: - ~% U( T1 r- ^; S
+ k" \" M9 M5 Q' D4 e' E再次确认无法导入的mp3歌曲是我们需要编辑的文件。包括再次确定2点因素:音乐大小、音质
0 s |0 K- _5 @" k# F要知道即使是相同的歌曲体积大小不同,也会出现音质的等级不同。一支质量好、体积小的音乐对Flash是很有益处的。
, q) I; C) _: j搜索网络音乐资源,在以上2点基础上再进行确定。并不是没有这样的可能:相等音质歌曲体积大小相差3倍左右,并可直接导入。
4 u5 A8 e( a% i9 }7 l g1 a4 b6 b* f
7 k% k9 {' T1 S
) |; O! e" {+ C$ k+ S0 t下面我们打开Goldwave软件~来看看如何操作 * L; s& ~4 q) c/ ~9 q/ p5 C+ t' Z$ Z( ]
+ n! O) A0 y9 j' Y) c6 y5 t
) J& c' ], Z: V+ `# N8 N
音乐无法导入的问题主要是所导入MP3音乐与flash所要求格式、属性不符,那么我们在这儿通过修改音乐属性包括音层,HZ(赫兹)的改变。 : I0 Q6 Y5 K% v1 Z s
- I; v# d/ ]; o4 u% `$ q1 R" V5 m
打开goldwave软件。在界面找到“打开”或:文件“文件---打开”选中转换歌曲
' C' q6 d' f5 }2 G6 {( F解压音乐后,找开菜单栏---“文件”。导入选择文件“另存为”,当然如果需要对音乐段进行裁剪,可通过工具栏中进行选择,这里我们不再讨论。% Q. T- I" T! F5 ]
在弹出菜单中,选择保存类型:MP3。4 m3 u+ U7 ^5 u4 A% n" h6 E
打开下面的属性菜单,选择各属性并修改:采样频率:22050HZ,已相当于标准CD采样率1/2。采样位数:64KPa,已接近最真实声音,个人经验选择采样位数:32KPa就可以达到基本的音质要求。
], Q. K/ `+ l" w4 X% m1 b检查体积大小、试听音质。主要是对编辑后的体积大小检查,及音质确认:体积是否满足需要,音乐是否清晰。那有人就想,我再设置高效果会更好!~没问题!可是要知道音乐效果好了,在flash中体积就大了。从flash减肥上来说不可取,音乐只是flash一部分。当然你也可以保存更低的采样频率、采样位数,从而音乐体积更小~音质则根据每个人的需要量力而行,选择较好音质同时体积不大,这也是结合Flash对音乐的要求。音乐1~2m以上、整体swf文件大小,对下载、播放是否流利或有影响,也是主要要考虑的问题。
6 L& G8 F: @- g K3 r& E6 R; c- K回到flash软件,导入mp3,正常导入并检查库中元件。! d# `: @* u8 N- H( i5 w
注意这里还可能可能会出现Mp3不能导入的情况,我个人的经验是将原音乐首先另存为wma格式,接着要不嫌麻烦的再次另存为Mp3,往往这样就能解决问题,具体的原因还不能解释清楚。% _: S, _$ v& c; T7 A
打开库面板,选中元件鼠标右键,选择“导出设置”。
; z. B! m$ f$ D; b9 O选择“声音设置”--改“默认”为“MP3”。再来一次比特率、品质设置 。
: b' C) ^* I+ b6 O. A, H8 ^+ a再选择“输出”--声音设置,进行修改设置,查看swf文件已降低,当然还可以降到更低,例如16kps甚至更低,但这时音质无法保证,因此提倡合理、适当分配音乐质量及体积大小。
% d$ Y) c8 L! {% U( T6 Z7 g& x2 ^5 o; E8 {/ t3 }
9 P! c5 Q4 R9 S' [
歌词和音频的同步,用于swf中的字幕制作
6 V! m8 j' h' w6 Y% G6 P2 c9 D. x0 g6 Z. }
打开库面板,点选音频文件,鼠标右键选择“链接属性”,修改标识符为“music”。
' _5 J P+ V5 g/ O3 ?在时间轴上新建一个图层命名为“文本”。
! A' t+ }/ {. P u7 S6 }使用文字工具输入第一句歌词,在属性面板上修改文本属性为“动态”,自变量为“x” 。
! l m. v/ B" [- C4 B1 }9 v: v在第1帧处插入如下代码,同时执行导入库中的音频文件:& G8 N* s3 V$ Q3 H
$ e2 {2 T+ `# q ainc = 0; ; Y" X3 k w. v$ T
music = new Sound();
5 O4 ? v6 n+ H% f7 j8 E' mmusic.attachSound("music"); 3 U6 _: V$ @( N, G5 h
music.start(); 3 N4 j: F. J; {8 Q3 z
+ X' i) e4 j4 t( s, {- Z
新建图层2,命名“as”层,第一帧处插入以下代码:
8 @5 h2 }; X \) W+ ^
, V+ Y3 f2 y) m" Ystop(); ! N* u+ O; l7 g( j% O* m
this.onEnterFrame = function() {
7 |3 _% Y% n( u; \ if (inc>10) {
; q s! }7 x0 r4 l; { gotoAndStop(1); , [. ^5 e! Z( f3 J5 L
} 0 W% d$ {4 }& I0 j7 ?( j
labelTimeList = [ 5, 11.5, 16, 21.5, 26.5 ,31.5];
* Y# S1 `' i; ] a$ J3 W musictext = ["在东京铁塔第一次眺望", "看灯火模仿坠落的星光", "我终於到达但却更悲伤", "一个人完成我们的梦想"]; ( W* H; _% _% a- R
if (getTimer()>labelTimeList[inc]*1000) {
3 s% t' F- s4 i3 i! V% \/ G x = musictext[inc]; . e$ f: Q8 I6 f9 V+ o9 p
inc == inc++;
/ r. q7 d5 u# l }
9 U- B4 z1 y8 b9 x& P% f' V* T. |}; , q! a# a! |- d
this.onEnterFrame = function() { //自定义函数,当这个场景载入的时候执行自定义函数7 U! k# Q. t; T; W
if (getTimer()>labelTimeList[inc]*1000) { //如果以用时间大于下载时间.则X变量的值为musictext[inc], inc变量加一后在返回值给inc& }; s/ i3 @9 v6 q
x = musictext[inc];
# d4 ~8 r1 W8 c' s) v inc == inc++; , U) g: U, n+ n- i$ q- }
}
9 I. V4 {9 R: H" B I};
, m3 J, S8 w; O. ZlabelTimeList=[5,11.5,16,21.5,26.5,31.5] //分别为歌词“起”的时间7 S+ W" D1 ]# P6 a k3 [( D
c6 t/ @* ~: U3 v- [& ^Ctrl+Enter回车测试效果。
; ]' r7 a. q! d! K" T3 `- ]$ T |
|