我有一個Chromecast和一個在線mp4文件的URL。我也有一個2Mbps的下載連接,這是可悲的,並且使Chromecast的緩存速度過慢。這就是我到目前爲止的嘗試:Chromecast PHP緩衝區MP4
通過開發者控制檯,我只需將location.href設置爲mp4的在線URL。 Chromecast會緩衝20秒,播放10秒鐘的視頻,然後再緩衝。所以,通過控制檯,我暫停了視頻並讓它緩衝了5分鐘。當我再次播放它時,它播放了大約15秒,然後失去了所有進度,不得不返回到主屏幕。
由於我不想等待mp4的整個下載完成,我目前正在嘗試這樣做:我將mp4緩存到位於我的htdocs目錄中的本地文件中,然後將Chromecast指向該文件的位置。但是,當通過Chrome瀏覽器打開mp4文件時(而不是播放),它會顯示下載提示,並且Chromecast會返回到主屏幕。
我已經實現在PHP中的緩衝,它看起來是這樣的:
$bufferSource = 'http://example.com/path/to/file.mp4';
$bufferedReader = fopen($bufferSource, 'r');
while(!($finished = feof($bufferedReader))){
if($finished !== false){ break; }
//get onle line
$buffer = fgets($bufferedReader);
file_put_contents('buffer.mp4', $buffer, FILE_APPEND);
}
fclose($bufferedReader);
我知道PHP做它的工作,因爲我可以看文件的大小增長我的電腦上,我可以打開文件與VLC。是否有另一個PHP腳本可以訪問本地緩衝的mp4文件來模擬「緩衝區」,因此Chrome不會顯示下載對話框,而是緩衝文件,Chromecast應該如此?
編輯:還有一件事。我不是將Chromecast指向PHP腳本。我實際上是直接將它指向buffer.mp4文件。
其實,我只使用PHP腳本緩衝到文件中。我不訪問Chromecast上的PHP腳本,而是訪問生成的文件本身,我認爲由於腳本緩衝文件,標題自動包含在其中。因此,服務器 - >客戶端和本地服務器 - > Chromecast是兩個獨立的獨立進程。 – arik
@ arik-so無論哪種方式你的問題是相同的。您的本地服務器未配置爲發送正確的內容類型標題。如果你要發佈你正在使用的服務器,我可以更具體地指導你。 – Brad
我正在使用XAMPP本地服務器。在這種情況下,明天我會嘗試製作另一個頁面,在發送mp4頭文件後訪問該文件。 – arik