2010-09-15 59 views
0

所以如我在this other post中所述,我的MP3播放器未在線加載,但在我的本地計算機上完美運行。As3 MP3播放器未加載

我今天搞亂了文件,終於閃過來給我一個錯誤。這可能是爲什麼MP3播放器不能在線加載?這裏的錯誤:

TypeError: Error #2007: Parameter text must be non-null. 
at flash.text::TextField/set text() 
at Mp3Player_fla::MainTimeline/id3Handler() 

通過我對自己的SWF的MP3的方式。它被主要的swf調用。如果我把所有的代碼放到主swf中,它可能有用嗎?這應該不會有所作爲,但也許是因爲我在同一時間加載大型電影作爲背景和其他許多swf,它會搞砸了嗎?

+0

查看它,對不起,第二段應該說「我今天搞亂了*文件」和「難道這就是爲什麼* MP3播放器不加載「 – mike 2010-09-15 06:15:01

+0

我記得通過將MP3放在與檢索它相同的文件中來解決這個問題。有點奇怪,但使用像file/location.mp3文件結構wouldnt工作,它必須在同一個文件 – mike 2012-09-04 12:01:45

回答

0

你的bug在id3Handler函數中。看起來你正試圖設置一個文本字段的值爲null。如果你不能弄明白,發佈代碼id3Handler,我會給你更多的信息。可能有些東西尚未加載。

+0

年,就像帕特里克說,檢查鏈接在我的鏈接在最初的帖子。它有所有的代碼即時通訊使用的MP3!謝謝你的回覆! – mike 2010-09-15 09:28:11

+0

這不是一個論壇,它是一個問答wiki。如果問題要求回答者看到上一個問題的代碼,那麼它應該是上一個問題的更新。 – 2011-11-18 17:40:35

0

你可以嘗試捕獲錯誤在id3Handler,萬一ID3標籤中沒有定義

 
function id3Handler(evt:Event):void { 

    try{ 

     songInfo.text = /*song.id3.artist + ": " +*/ song.id3.songName; 

    }catch(e:Error) 
    { 
     trace(e); 

     //or... 
     songInfo.text = "No name" 
    } 
} 

雖然,你可能有一個安全問題,ID3信息,將在這樣的情況下返回。你使用跨域策略文件嗎?從Sound類文檔

提取物:

 
Certain operations dealing with sound are restricted. 
The data in a loaded sound cannot be accessed by a file in a different domain 
unless you implement a cross-domain policy file. 
Sound-related APIs that fall under this restriction are 
Sound.id3 , 
SoundMixer.computeSpectrum(), 
SoundMixer.bufferTime, 
and the SoundTransform class. 

編輯:

這裏是一個非常寬容的政策文件,複製它,將它保存到一個文件,並將文件命名

 
crossdomain.xml 

然後將其上傳到您網站的根文件夾,例如example.com

 
http://example.com/crossdomain.xml 
<?xml version="1.0"?> 
    <!DOCTYPE cross-domain-policy SYSTEM  
    "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
     <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> 
     <allow- access-from domain="*" secure="false"/> 
     <allow-http-request-headers-from domain="*" headers="*" secure="false"/> 
</cross-domain-policy> 

如果一切正常,請閱讀這篇文章

http://kb2.adobe.com/cps/142/tn_14213.html

,看你怎麼可以用我,用我網站上的MP3播放器開發的跨域策略文件

+0

所以是的,我試過你的代碼,錯誤消失了。我上傳了文件,但仍然沒有改變,MP3仍然無法加載。我不知道你的意思是關於crossdomain,但我所有的網站文件都在同一臺服務器上的同一個文件夾中,如果這就是你想知道的。另外,我在計算機上創建了一個單獨的文件夾,並將所需的所有內容移動到了文件夾中,並將該文件夾中的所有內容上傳到我的服務器上的文件夾中,這就是爲什麼它在我的電腦上非常奇怪。它與我的電腦完全一樣,但只適用於本地而不是在線 – mike 2010-09-15 09:37:31

+0

我甚至試圖將音頻文件從9mb壓縮到2.5兆字節但仍然沒有改變......即時通訊將嘗試將所有內容都轉換爲主要的swf,而不是一次加載mp3 swf。我懷疑這會改變任何內容,但... – mike 2010-09-15 09:39:41

+0

檢查編輯後的答案,我認爲這很可能是您有一個安全錯誤,這將解釋爲什麼它在本地工作,而不是在線 – PatrickS 2010-09-15 11:46:11

1

確保網站通過FlashXML,最初我遇到了同樣的問題,但是我和FX的人聊過,他們把我的問題排除在外。

真的卡住了,直到他們幫助我。如果你仍然感興趣,你可以在www.flashxml.net/mp3-player.html