2012-04-16 45 views
0

這是一個奇怪的問題,Soundmanager 2不播放mp4文件 - 使用PHP腳本輸出時

Soundmanager在使用PHP輸出時不會播放MP4。

soundManager.createSound({ 
    id: 'sm2-1001', 

    url: 'http://mysite.tld/1333092566.mp3', // WORKS 
// url: [{type: 'audio/mp3', url: 'http://mysite.tld/outputmp3.php}], // WORKS 
// url: 'http://mysite.tld/1333092566.mp4', // WORKS 
// url: [{type: 'audio/mp4', url: 'http://mysite.tld/outputmp4.php}], // DOES NOT WORK 

    autoLoad: false, 
    autoPlay: true, 
}); 

網址是否正確,從瀏覽器去http://mysite.tld/outputmp4.php - 打開並播放就好了。

使用smartReadFile.php https://jplayer.googlegroups.com/attach/f308294ddea52f6c/smartReadFile.php?view=1&part=4

使用最新版本的SM2

的 從SM2

調試信息:

soundManager.createSound(): sm2-1001 (http://mysite.tld/outputmp4.php) 
soundmanager2.js (line 1110) 
SMSound() merged options: { id: sm2-1001, url: http://mysite.tld/outputmp4.php, autoLoad: false, autoPlay: true, loops: 1, multiShot: true, multiShotEvents: false, pan: 0, stream: true, usePolicyFile: false, volume: 100, usePeakData: false, useWaveformData: false, useEQData: false, bufferTime: 3 } 
soundmanager2.js (line 1112) 
SMSound.play(): "sm2-1001" is loading - attempting to play.. 
soundmanager2.js (line 1110) 
SMSound.play(): "sm2-1001" is starting to play 
soundmanager2.js (line 1112) 
SMSound._onload(): "sm2-1001" loaded. 
soundmanager2.js (line 1110) 
(Flash): correcting sound sm2-1001 end position (0) to length: 4602 

任何想法?請幫忙。謝謝。

+0

這裏最有可能的答案是,通過'http:// mysite.tld/outputmp4.php'沒有產生有效的MP4文件。把'error_reporting(0); ini_set('display_errors',0);'在PHP腳本的頂部,檢查''標籤之外的前導/尾隨空格。如果您的腳本存儲爲UTF-8,請確保它沒有[BOM](http://en.wikipedia.org/wiki/Byte_order_mark),並且如果可能將其轉換爲ISO-8859-1。嘗試下載並保存文件,並在編輯器中打開它以確保它是有效的MP4文件。 – DaveRandom 2012-04-16 11:15:54

+0

我也這麼認爲,但是當我使用Firefox/Chrome/IE瀏覽器打開http://mysite.tld/outputmp4.php時,它怎麼會啓動文件並播放它就好了?文件是有效的MP4,否則你怎麼能解釋什麼時候使用它直接鏈接到它罰款_url:'http://mysite.tld/1333092566.mp4'_ – 2012-04-16 11:19:19

+0

有沒有什麼辦法可以發佈腳本的實際URL所以我們可以看到輸出以及服務器如何處理它?這可能是因爲SM2請求文件的方式導致PHP生成錯誤消息,而您從瀏覽器中得不到該消息。禁用上述錯誤報告可以解決這個問題,爲了雙重安全,在php.ini中禁用它,以防錯誤是在初始化期間生成的那些煩人的'in/path/file at line 0'錯誤。我還會[Wireshark](http://www.wireshark.org/)查看原始網絡數據。 – DaveRandom 2012-04-16 11:22:37

回答

0

將此選項強制爲TRUE解決了該情況。

'isMovieStar': null,  // "MovieStar" MPEG4 audio mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL 

此外,此選項必須應用,因爲從Flash9開始支持isMovieStar。

soundManager.flashVersion = 9; 
0

audio/mp4不是正確的mimetype,因爲mp4是(專爲)視頻。嘗試使用video/mp4,或只是audio/mpeg

+0

SM2 API聲明這是正確的格式。 http://www.schillmania.com/projects/soundmanager2/doc/#api soundManager.audioFormats = {} – 2012-04-16 11:05:21

+0

嗯,我試着改變,它仍然無法正常工作。 – 2012-04-16 11:05:44

+1

你確定你的PHP代碼生成正確的Mp4嗎? – ONOZ 2012-04-16 11:10:13