我有一個自定義播放器可播放錄音(僅音頻)。如果音頻文件很長,NetStream類不會很好地找到它。我發現在16776秒(04:39:36)之後,NetStream查找功能從文件開頭再次啓動。這裏是最短的僞代碼:無法超越16776秒
package com.name.player
{
import flash.net.NetConnection;
import flash.net.NetStream;
...
public class StreamingPlayer extends Sprite
{
public var maStream:NetStream;
...
public function aFunction
{
maStream = new NetStream(maConnection);
maStream.inBufferSeek = true; // ==> Generates compile error:
//Error: Access of possibly undefined property inBufferSeek through a reference with static type flash.net:NetStream.
// [mxmlc]
// [mxmlc] maStream.inBufferSeek = true;
// [mxmlc] ^
maStream.play('sName', 0, -1, true);
// Now try these (one at a time)
maStream.seek(16775); // Seeks to the desired position and plays the file till the end
maStream.seek(16776); // Seeks at second 0 (begining)
maStream.seek(16778); // Seeks at second 0 (begining)
maStream.seek(16780); // Seeks at second 3
maStream.seek(16786); // Seeks at second 9
maStream.seek(16796); // Seeks at second 19
...
}
...
}
...
}
我嘗試了不同的格式(Speex語音,WAV)/碼/比特率:
- RIFF(小端)數據,WAVE音頻,ITU G.711 A律,單8000赫茲
- RIFF(小端)數據,WAVE音頻,微軟PCM,16位,單44100赫茲
- 奧格數據的Speex音頻
的文件大小或總長度不要緊,我嘗試在1.1 - 1500 MB和04:40:00(17000秒)到14:56:41(53801秒)之間嘗試。
我爲新瀏覽器使用html5,但我們仍然需要支持舊瀏覽器(在某些客戶端PC上無法更新安裝新軟件,所以我需要這些Flash解決方案,因爲Flash已安裝並沿側IE6 :()運行
問:
難道我做錯事或存在NetStreamer的限制,如果有什麼解決辦法(S)我必須能夠發揮這些長文件?
PS這是我第一次使用閃存,所以請嘗試更明確一點,如果你有答案/評論。
編輯:在Adobe身份證新增的bug 3492103.
編輯:
我有一個同事測試流服務器,他發現一些野趣的日誌:
// This is lower than 16776 seconds, and works
01-26 13:02:14.277 RtmpProtocol:891 [ID-007] Seeking to 1594380
...
01-26 13:02:14.279 FileReaderWav:194 [ID-007] <Stream0001> Seeking to 15943804 sf_seek 127550432
...
01-26 13:02:16.250 FileReaderWav:230 [ID-007] <Stream0001> Current position: 15943824
// This is when it plays from the beginning (seeking after 16776 seconds)
// according to the log it should just play at the desired position, but it's not
01-26 13:02:23.294 RtmpProtocol:891 [ID-007] Seeking to 16990012
01-26 13:02:23.303 FileReaderWav:194 [ID-007] <Stream0001> Seeking to 16990012 sf_seek 135920096
01-26 13:02:23.463 FileReaderWav:230 [ID-007] <Stream0001> Current position: 16990032
我們migth在流服務器中有問題,有些INTEGER轉換或類似的東西。我會更新,如果我得到更多的信息。
謝謝
Theres沒有在文檔中建議17000+不是一個可接受的值,並且沒有爲NetStream.seek()記錄的錯誤。也許你發現了一個新的?我懷疑很多用戶試圖在 – 2013-01-23 15:15:41
@LeeBurrows之前播放這麼長的文件。我有什麼方法可以填充一個錯誤?從發展的角度來看,AFAIK閃存或多或少已經死亡,但我認爲應該讓他們知道。 –
錯誤可以在這裏提交:https://bugs.adobe.com/。而Flash肯定沒有死; Flash網站可能會自動生成,但不會自動生成 – 2013-01-28 19:38:01