FileRefenrence + ByteArray + Dynamic Sound = 在线soundbooth ?

Flash10的 FileRefenrence(简称FR)可以读写本地文件了,刚听到时牛倒一片,等大家都把玩过了,又嘘声一片......
由于安全因素,flashplayer不可能偷偷摸摸的读个文件写个文件,那会天下大乱的。 于是FR.browser会弹个窗口,FR.save也会弹个窗口。但不管怎样,弹个窗口什么的,最终能把事办了就好。
可后来发现FR读进来的顶多就是一个ByteArray,而真正的文件路径仍旧没有,所以除了以后能做做在线图片生成可以把后台程序仍了外,想要搞个更具娱乐性质的在线声音,视频之类的FR还是个残念......
于是有人叫着要Adobe开发NetStream,哈哈, 支持的人顶一下吧。

不过这边要说牛x的,就是ByteArray,这2进制的玩意儿实在是无敌,不是Sound没法直接load bytearray么,那就变通一下(我发现老外在 技术方面的变通性真不比中国人差多少)
利用8.5时代首创的Dynamic Sound法:把一个声音文件先嵌入到swf里,然后加载该swf,再用ByteArray榨取出嵌入的声音文件,从而动态的生成一个Sound对象。
那么灵感来了,于是用ByteArray造就一个SWFByte对象,再把用户通过FR选择的sound文件以2进制的方式插入到SWFByte对象里面,再用Loader.loadByte加载SWFByte对象,然后动态生成一个Sound对象。

转的弯可比九曲桥.....然而理论上是行的通的。

不过还是有猛人把理论变为了现实 MP3FileReferenceLoader !
过程就是那么个过程,难的是要去分析swf和声音文件的编码......

于是再加上这个 技术含量很高的类库,什么时候要是出现个在线 soundbooth,我是一点都不奇怪!

你可能感兴趣的:(flash10)