如何结合javascript Soundcloud播放器和flash可视化

时间:2011-10-01 00:07:23

标签: javascript flash audio

我已经设置了一个很好的Flash音频可视化,它可以加载音频文件并播放它,并在音乐中及时显示一系列闪烁的彩色条。我不想在swf中列出和控制歌曲的播放。我希望在页面的HTML中列出歌曲,最好是非Flash格式。我在Soundcloud上托管我的音频并找到了他们javascript player,这很适合我的目的。现在我怎么能整合这两件事呢?

似乎要么我需要一种方法将javascript播放器生成的音频传输到swf中,如果可能的话,或者将声音静音在两个位置之一(最好是js,以便vis最佳同步)并将所有播放/停止/搜索命令从js播放器传递到flash vis。这是否太难以打扰?

更新 让我更具体一点。假设“将音频传输到swf”方法无效,我将需要在swf和js之间传递许多不同的消息。我知道如何从js开始swf音频。有人能够证明如何做以下事情吗?

  • 从闪回到js表示音频已启动的信号
  • 从闪光灯发出信号到js音频的当前时间
  • 暂停或停止来自js的闪光音频

您可以假设存在以下代码:

var url:String = "mysong.mp3"; 

var song:SoundChannel;
var request:URLRequest = new URLRequest(url);  
var s:Sound = new Sound();  
s.addEventListener(Event.COMPLETE, onLoadComplete );  
s.load(request);

function onLoadComplete(event:Event):void 
{    
  song = s.play(33000);
  song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);   
  s.removeEventListener( Event.COMPLETE, onLoadComplete );
}  

function soundCompleteHandler(event:Event):void 
{    
   song.removeEventListener( Event.SOUND_COMPLETE, soundCompleteHandler );
}

我不明白Sound类和SoundChannel类之间的奇怪分离,以及为什么不同的方法似乎分散在它们之间。

1 个答案:

答案 0 :(得分:0)

哇!感谢一些很棒的Adobe voodoo,我的flash音频可视化器实际上是在自动拾取在同一网页上播放的音频!我认为这与我使用SoundMixer.computeSpectrum()的事实有关。我甚至不明白它是如何工作的,但显然它可以看到外部闪存本身对浏览器窗口中播放的任何音频。所以我不必担心“将音频传输到闪存中”或者在swf和javascript之间传递函数!

通常编程努力需要使各种变量适合任何工作。当一切都在没有尝试的情况下工作时,它有多棒!