首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Flash中将生成的波形作为声音播放?

如何在Flash中将生成的波形作为声音播放?
EN

Stack Overflow用户
提问于 2011-01-17 23:37:49
回答 2查看 643关注 0票数 1

如果我有一个声音波形在ActionScript3中存储为ByteArray,我该如何将其转换为可以播放的sound对象?

请注意,该数组充满了声音样本-一个完整的生成波形。它不是包含mp3或其他压缩数据的数组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-18 00:02:24

我在Flash中写了相当多关于声音合成的教程,其中一些是关于波表合成的。

一般的概念是,您需要以固定的间隔使用音频数据填充音频缓冲区( Sound对象)。Sound对象在需要音频数据时会调度一个事件。数据块可以是2048到8192个样本之间的任何位置。下面是一些可能对你有帮助的伪代码。它将从数组中的数据创建一个音频循环。

代码语言:javascript
运行
复制
var readIndex:int = 0;
var data:Array = yourData;
var sound:Sound = new Sound()
sound.addEventListener( SampleDataEvent.SAMPLE_DATA, onSampleData );
sound.play();


function onSampleData( event:SampleDataEvent ):void 
{
      for( var i:int = 0; i < 2048; i++ )
      {
           if( readIndex + 1 > data.length )
           {
               readIndex = 0;
           } else {
               readIndex++;
           }

           event.data.writeFloat( data[i] );
           event.data.writeFloat( data[i] );
      }
}

正如我所提到的,我已经写了很多关于在Flash中使用声音的文章。这里有一篇这样的文章:http://labs.makemachine.net/2010/07/slice-tool-looper/

票数 4
EN

Stack Overflow用户

发布于 2011-01-17 23:51:48

嗯,我真的没有答案,但当我读到你的帖子时,我对这个问题也很感兴趣,here就是我找到的。听起来开销很大,但是非常有趣的解决方案。

我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4714953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档