|
+ ^4 J9 j* g' f) ^
在Flash制作过程中,导入Mp3音频经常会遇到"读文件时出现问题,一个文件或多个文件无法导入"的提示,导致音频导入失败的情况。本文介绍了一种通过Goldwave软件解决这一音频导入问题,并使用脚本语言简单、轻松实现歌词和音频的同步。
* o: D5 q4 w7 f, H& J5 ^; r2 H! S9 p; L0 n% t" |! m
- C8 J1 }, n |& s" {2 z5 }0 q' ^
7 q# u9 c3 j6 d. m5 n首先了解一下音频的几种常见格式:
. M7 v, g* f1 L, L/ |2 p+ r9 W+ \! F- {% u q
mp3(mpeg-1 audio layer 3): 能够以高音质、低采样率对数字音频文件进行压缩。换句话说,音频文件(主要是大型文件,比如WAV文件)能够在音质丢失很小的情况下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。 - ]% G* R7 [/ G% j- r6 a5 K: M' @
wma(windows media audio):是微软在互联网音频、视频领域的力作。常常用于在线收听和广播的首选,wma格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。 m6 H4 w7 X: f
wav 也叫一种波形声音文件格式,是最早的数字音频格式,被Windows 平台及其应用程序广泛支持。采用44.1kHz 的采样频率,16 位量化位数,跟CD 一样,对存储空间需求太大不便于交流和传播。
6 i6 j2 R6 z% K" Y( e; Z" S
9 |$ e! R+ c9 Q, Y# x0 [属性(采样频率):
/ {- o) P1 q6 M5 D3 ?6 O2 ]
+ e1 A; F4 }) ]% s) a5KHZ:只适合于说话声音
& o h6 b3 m' z! o8 C/ t: j' t11khz:相当于电话音质。是标准CD采样率的1/2,是最低的推荐品质
7 `* R- v' ~; b5 X. J22khz:相当于FM广播的声音品质。相当于标准CD采样率的1/2,是供WEB播放的通用选择
: ~3 s% P- K- {$ N9 i44khz:理论上的CD音质界限。标准CD采样率 ( \3 {# H7 \; x" \' y
3 X9 u+ M& P# ]) F
采样位数:/ g/ {3 v1 B6 a
' p* _( B& V+ M5 B3 e9 V w
如:一段相同的音乐信息,16位声卡能把它分为64K,80K,96K,,,等精度单位进行处理,但这个数值越大,解析度就越高,声音就越真实。 ) A9 s4 T g9 t. m- E! S# \
当对采样频率、采样位数(音质)二因素质量越高时,同时音乐的体积也成正比表现出越大。
, u6 x+ h" b0 m+ i% A0 F确定音乐被flash无法识别导入后,首先我们要考虑以下几个问题: 0 A' G; G" D9 ^8 s& a0 G
5 N& |' o% x: B# K* F _# @& J再次确认无法导入的mp3歌曲是我们需要编辑的文件。包括再次确定2点因素:音乐大小、音质$ V7 z- I& O/ l l1 _1 `8 u! f1 ^9 h
要知道即使是相同的歌曲体积大小不同,也会出现音质的等级不同。一支质量好、体积小的音乐对Flash是很有益处的。 [6 B/ @7 X- |* z" ?# B
搜索网络音乐资源,在以上2点基础上再进行确定。并不是没有这样的可能:相等音质歌曲体积大小相差3倍左右,并可直接导入。% W( k1 E( C' C9 B7 q3 \
( V& a9 Q9 l+ V( |
& B5 v% P4 Z* D3 a
下面我们打开Goldwave软件~来看看如何操作 5 g: g- A) q3 e& ]8 {
. y. K7 [) T+ X$ R4 \' E8 _( Q
7 p0 {7 o+ F( c, T F音乐无法导入的问题主要是所导入MP3音乐与flash所要求格式、属性不符,那么我们在这儿通过修改音乐属性包括音层,HZ(赫兹)的改变。
$ o, ~& f! G. g4 a
" r! F' w+ t4 i- C. }2 H) U T- D# r打开goldwave软件。在界面找到“打开”或:文件“文件---打开”选中转换歌曲
, C2 V/ g; @+ j; O6 q解压音乐后,找开菜单栏---“文件”。导入选择文件“另存为”,当然如果需要对音乐段进行裁剪,可通过工具栏中进行选择,这里我们不再讨论。
7 W9 P! [' K6 q2 t& t( v) X) `在弹出菜单中,选择保存类型:MP3。
0 p; o) m6 Q9 b {' D- y- s打开下面的属性菜单,选择各属性并修改:采样频率:22050HZ,已相当于标准CD采样率1/2。采样位数:64KPa,已接近最真实声音,个人经验选择采样位数:32KPa就可以达到基本的音质要求。+ k0 ^4 G; b2 z( ?5 r
检查体积大小、试听音质。主要是对编辑后的体积大小检查,及音质确认:体积是否满足需要,音乐是否清晰。那有人就想,我再设置高效果会更好!~没问题!可是要知道音乐效果好了,在flash中体积就大了。从flash减肥上来说不可取,音乐只是flash一部分。当然你也可以保存更低的采样频率、采样位数,从而音乐体积更小~音质则根据每个人的需要量力而行,选择较好音质同时体积不大,这也是结合Flash对音乐的要求。音乐1~2m以上、整体swf文件大小,对下载、播放是否流利或有影响,也是主要要考虑的问题。7 Y8 Y) i0 \' c1 {
回到flash软件,导入mp3,正常导入并检查库中元件。
! v4 @ F( k5 x) g- m5 {* ?注意这里还可能可能会出现Mp3不能导入的情况,我个人的经验是将原音乐首先另存为wma格式,接着要不嫌麻烦的再次另存为Mp3,往往这样就能解决问题,具体的原因还不能解释清楚。+ X1 k. g! V( M, ~/ A/ A. c
打开库面板,选中元件鼠标右键,选择“导出设置”。
' E* J l& R/ u. A8 Q选择“声音设置”--改“默认”为“MP3”。再来一次比特率、品质设置 。
( `! h: T# ?; m) k. ~; u再选择“输出”--声音设置,进行修改设置,查看swf文件已降低,当然还可以降到更低,例如16kps甚至更低,但这时音质无法保证,因此提倡合理、适当分配音乐质量及体积大小。
3 z- M5 y ^8 x/ a6 g
$ r! I4 |6 |; q, x8 m
. s$ L2 E% f3 S V歌词和音频的同步,用于swf中的字幕制作
5 `9 t. Z9 j! d# R0 R1 k; ?7 O1 `, i% `% Y
打开库面板,点选音频文件,鼠标右键选择“链接属性”,修改标识符为“music”。
7 @* K0 V' L: g; Q' F在时间轴上新建一个图层命名为“文本”。. a( t8 `2 n+ e6 k
使用文字工具输入第一句歌词,在属性面板上修改文本属性为“动态”,自变量为“x” 。8 m! q* s9 l Z+ ~- ~1 J7 z: P: X
在第1帧处插入如下代码,同时执行导入库中的音频文件:: ]; Z8 J% N5 ?: C( z9 p0 N" H
7 s+ W4 Y$ v- ~; g) M1 U7 t/ V- ]
inc = 0;
0 `( E: S- t& G. r% H# C( d/ R# smusic = new Sound(); / \/ W7 B; ~$ N" L# \! k7 O
music.attachSound("music");
~+ P6 D/ W/ Z8 z xmusic.start(); 1 h# m% E4 Y: w. v' C7 ~
+ C1 f; P% d( V. f$ X/ k新建图层2,命名“as”层,第一帧处插入以下代码:
. ~7 @: }7 y( r
$ I: H: z m/ zstop();
; @9 d# l) @$ S* R$ O8 v# O/ [1 g& f* othis.onEnterFrame = function() { 4 b( ^+ ]6 i0 P' `- q- G* h% _+ m
if (inc>10) {
6 a8 ~9 } W7 Y9 C2 f! F, U gotoAndStop(1); ' K; j# h4 O5 R8 n, I
} ( P; x) @( `7 ^7 ]0 Y* C
labelTimeList = [ 5, 11.5, 16, 21.5, 26.5 ,31.5];
3 r U( M$ Z2 T, u5 G e musictext = ["在东京铁塔第一次眺望", "看灯火模仿坠落的星光", "我终於到达但却更悲伤", "一个人完成我们的梦想"]; 9 w& b, T0 b, ~9 b' V
if (getTimer()>labelTimeList[inc]*1000) { & s# @6 z1 n* O+ u2 k* S
x = musictext[inc]; 8 F' X2 u5 y* ` p9 B
inc == inc++;
8 p: |- z. S$ E$ V }
# N6 B4 y% ], U};
0 _& j0 X1 i' `this.onEnterFrame = function() { //自定义函数,当这个场景载入的时候执行自定义函数
+ U7 }) r9 n6 e# J7 P) o- K8 C if (getTimer()>labelTimeList[inc]*1000) { //如果以用时间大于下载时间.则X变量的值为musictext[inc], inc变量加一后在返回值给inc2 C! ^. @0 A2 ?' B2 L
x = musictext[inc]; 1 i. @6 ?' F e5 w, j- b
inc == inc++;
: T8 e4 J e2 o9 c; C }
. q9 j( P0 u' _# Y, F};
' h: {' q8 e8 ^0 U2 YlabelTimeList=[5,11.5,16,21.5,26.5,31.5] //分别为歌词“起”的时间
* n4 E. \; n0 E; L2 h0 i3 N
* y6 h, ?3 e2 O/ S RCtrl+Enter回车测试效果。" Q+ D% E) x( D' S' e, ~: s$ u( `
|
|