我想開發一個小應用程序,我首先通過aperture
包捕獲屏幕,然後嘗試使用video
標記在屏幕上顯示它。打電子本地mp4文件
我捕捉屏幕通過:
import apertureConstructor from 'aperture';
const aperture = apertureConstructor();
const options = {
fps: 30
};
(async() => {
await aperture.startRecording(options);
setTimeout(async() => {
this.captureUrl = await aperture.stopRecording();
}, 3000)
})();
請忽略的混亂。 Aperture
包將捕獲的視頻寫入磁盤,並最終獲得此文件的路徑captureUrl
。它是這樣的:
/var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-79999m0uOszQK0zaC.mp4
我可以驗證此文件是否存在,併發揮得很好,如果我輸入:file:///var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-79999m0uOszQK0zaC.mp4
谷歌瀏覽器的地址欄中。
所以我嘗試使用這個地址作爲我video
標籤這樣的來源:
<video control autoplay>
<source src="/var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-8004145a2o4gugbVV.mp4" type="video/mp4">
</video>
哪個抱怨說文件不存在(404):
GET http://localhost:9080/var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-8004145a2o4gugbVV.mp4 404 (Not Found)
是的,這的確嘗試去localhost:9080
,因爲在這種情況下,它是我的開發服務器主機,並且沒有這樣的文件。
所以我決定添加file://
...
<video controls autoplay>
<source src="file:///var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-8004145a2o4gugbVV.mp4" type="video/mp4">
</video>
這一次,它說:
Not allowed to load local resource: file:///var/folders/29/08gshk3n4mlbbcjnm1m5xyy40000gp/T/tmp-80041e3SlBZUNphLM.mp4
:/
我不知道如果我錯過了一些東西,使「文件:/ /「安全或其他。
我也想過通過「fs」和base64'ing它提供的視頻作爲data:
來閱讀整個文件,但由於這個視頻文件可能很大,我覺得我不應該這樣。
由於我是electron
的新手,我希望我錯過了一些基本的東西。任何幫助表示讚賞。謝謝!