2010-01-18 32 views
1

我有一個我寫的Flex3應用程序,我通過RTMP從Red5服務器流式傳輸音頻。我很想能夠使用SoundMixer.computeSpectrum(),但光譜數據全部爲零。在一個位置,Adobe寫道SoundMixer.computeSpectrum()不適用於RTMP數據:Flex:computeSpectrum with streaming media?

「對於從RTMP源加載的媒體,不能使用BitmapData.draw()和SoundMixer.computeSpectrum()方法提取run時間圖形和聲音數據。「 http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000353.html

夠清楚。除此之外,還有computeSpectrum()的實際文檔:

「此外,即使通過駐留在與RTMP服務器相同的域中的內容調用該方法,該方法也不能用於從RTMP流提取數據。 ...] Flash Player 9.0.115.0及更高版本和Adobe AIR中的RTMP支持此方法。「

嗯。這似乎與我相矛盾。

任何建議的方式或其他?

回答

-1

computeSpectrum和ID3標籤不適用於Flex應用程序所在的其他域的數據。

+0

所以......你說computeSpectrum〜〜應該用RTPM工作,如果彎曲應用程序來自與RTMP服務器相同的服務器? – organicveggie 2010-02-17 15:08:41

+0

我發現了一個例子,演示瞭如何在RTMP服務器上使用computeSpectrum(我沒有讀過它) - http://www.wowzamedia.com/forums/showthread.php?p=13367。也許它會幫助你 – Laserson 2010-02-17 17:36:05

+0

它與域名無關,「除了加載flex應用程序的地方。」 – amn 2010-02-23 17:13:55

-3

報價Adobe的自己的公共文件「Adobe ActionScript 3.0編程爲Flash」,700頁(第32章,標題爲 「加載內容」,副標題 「使用RTMP服務器的內容交付」:

對於從RTMP源加載的媒體,不能使用BitmapData.draw()和 使用SoundMixer.computeSpectrum()方法來提取運行時圖形和聲音數據。

好老RTFM(閱讀友好手冊)件的意見仍然適用

+0

盡我所能,我做了RTFM。我引用了你在我原來的問題中所做的完全相同的事情。但是,正如我在我的問題中提到的,SoundMixer.computeSpectrum()的Adobe文檔本身說它不支持RTMP,並且它支持RTMP。 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/media/SoundMixer.html#computeSpectrum%28%29 – organicveggie 2010-02-24 16:14:46

+0

我不明白這兩者如何相互抵觸 - 都說你不能計算頻譜用於RTMP媒體。至於RTFM,是的,我跳出了自己,我很抱歉。 – amn 2010-02-25 14:39:12

+0

基於我自己的實驗,我傾向於同意您不能將computeSpectrum()用於RTMP媒體。儘管如此,computeSpectrum()的文檔(http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/media/SoundMixer.html#computeSpectrum%28%29)說:「這種方法是通過RTMP支持的Flash Player 9.0.115.0和更高版本以及Adobe AIR中。「 – organicveggie 2010-04-06 20:41:45

0

還有服務器端(Flash Media Server腳本)上的'client.allowAudioSampleAccess'屬性,它允許客戶端根據我的理解完全按照您的要求執行操作 - 通過'computeSpectrum ' 方法。

+0

Red5(他所引用的)不支持這個字段,所以這真的不適用於此。 – 2010-09-10 19:19:34