2017-08-07 57 views
0

現在我的webapp工作是這樣的:用戶點擊按鈕,然後應用程序將發佈一個URL從互聯網上獲取視頻。如何通過使用與crosswalk的shouldInterceptLoadRequest播放本地視頻?

我的目的是:當SD卡上有用戶想看的視頻時,應用程序不會問互聯網,而是播放本地視頻。我發現方法「shouldInterceptLoadRequest」,我可以做一些事情,當我使用該方法來獲取每個應用程序準備發送的網址。

但我的句柄後,我需要通過使用createXWalkWebResourceResponse(字符串mimeType,字符串編碼,InputStream數據)返回一個XWalkWebResourceResponse。

但是來到這裏的問題代碼:

InputStream inputStream = new FileInputStream(filePath); 
return createXWalkWebResourceResponse("video/*","UTF-8",inputStream); 

此代碼不起作用,並且球員仍然獲得互聯網視頻,而不是本地視頻。

我在想我在哪裏錯了?我相信讀/寫權限是全部設置和文件路徑是真實的(我做一個mediaplayer演示播放mp4文件併成功)。

我嘗試通過getData()讀取輸入流,並且成功,這意味着xwalkwebresourceresponse有數據,但爲什麼數據不起作用?

請有人知道我錯在哪裏可以告訴我哪個地方是錯的。我有搜索文檔,網站和任何地方我可以搜索,但仍然無法找到如何解決它。

回答

0

我是提問者。 我沒有找到答案的關鍵,但我找到一些其他方法來解決這個問題。

當我需要使用'shouldInterceptLoadRequest'來取代webresource與本地資源。我還可以設置一個網絡服務器,使本地資源成爲網絡資源。這意味着本地資源可以通過網絡訪問。所以我不需要使用'shouldInterceptLoadRequest'。

我使網絡視頻s path changed by js, and when the App load the js, i use 'shouldInterceptLoadRequest' to replace the web js with local js. local js can change the web video path. after that i set up a webserver to provide the localresource的路徑,所以應用程序現在可以加載本地資源。

但是我仍然不知道爲什麼'shouldInterceptLoadRequest'無法取代網絡視頻。希望有人能回答我。

(哦,我成立了Web服務器與AndroidAsync,AndroidAsync可以通過github上被搜索)

英文不好。 希望能幫助你。

相關問題