FP10 调节MP3的播放速度 BUG修正

文章FlashPlayer10实例 调节MP3播放速度中的小程序还有个BUG。
当加载一些320KBPS的mp3会出现重音或”卡”的问题。
开始以为是对mp3的支持不够好,后来发现如果将mp3数据全部extract,音乐就正常播放了。
于是将范围缩小到SampleDataEvent事件中的extract,有可能是这部分”异常”了。
代码:
targetSound.extract(samplesData, buffer*multiple, position);
将position去掉,默认为-1
文档中有解释:
“startPosition:Number (default = -1) — 开始提取处的样本。如果未指定值,则对 Sound.extract() 的第一个调用将在声音的开头启动;未指定 startPosition 值的后续调用将按顺序通过该文件。”
但是,问题依旧。
反复试验了多次,过程略。
最后注意到上面代码中有对samplesData位置的操作,也许下面的targetSound.extract并未是在samplesData尾插入数据,抱着试试看的心态,在extract前加了句:
samplesData.position = samplesData.length;
运行,读取mp3,播放OK。
最后总结下,错误的原因是误认为extract方法中startPosition参数同样具有ByteArray定位功能。
源代码下载:点击下载此文件

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">