如何通过人行横道使用 shouldInterceptLoadRequest 来播放本地视频?
how to play local video by using shouldInterceptLoadRequest with crosswalk?
现在我的网络应用程序是这样工作的:用户单击按钮,然后应用程序将 post 一个 url 从互联网获取视频。
我的目的是:当sdcard中有用户想看的视频时,app不会请求上网而是播放本地视频。
然后使用人行横道(这是一个非常好的框架),我找到方法 "shouldInterceptLoadRequest",当我使用该方法获取应用程序准备发送的每个 url 时,我可以做一些事情。
但是在我处理之后,我需要使用 createXWalkWebResourceResponse(String mimeType, String encoding, InputStream data) return XWalkWebResourceResponse。
然而这里出现了问题代码:
InputStream inputStream = new FileInputStream(filePath);
return createXWalkWebResourceResponse("video/*","UTF-8",inputStream);
此代码无效,播放器仍然获得网络视频而不是本地视频。
我想知道我哪里错了?我确定 read/write premission 已全部设置并且文件路径是真实的(我制作了一个媒体播放器演示来播放 mp4 文件并成功)。
我尝试通过getData()读取输入流,也成功了,说明xwalkwebresourceresponse有数据,但为什么数据不起作用?
请知道我哪里错了的人告诉我哪个地方wrong.i搜索了文档,网站和任何我可以搜索但仍然找不到解决方法的地方。
我是提问者。
我没有找到 answer.but 的关键我找到了一些其他的方法来解决这个问题。
当我需要使用 'shouldInterceptLoadRequest' 将 web 资源替换为本地资源时。我还可以设置一个网络服务器,使本地资源成为网络资源。这意味着可以通过网络访问本地资源。所以我不需要使用 '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'不能替代网络视频。希望有人能回答我。
(哦,我用 AndroidAsync 设置了网络服务器,AndroidAsync 可以通过 github 搜索)
英语不好。
希望能帮到你。
现在我的网络应用程序是这样工作的:用户单击按钮,然后应用程序将 post 一个 url 从互联网获取视频。
我的目的是:当sdcard中有用户想看的视频时,app不会请求上网而是播放本地视频。
然后使用人行横道(这是一个非常好的框架),我找到方法 "shouldInterceptLoadRequest",当我使用该方法获取应用程序准备发送的每个 url 时,我可以做一些事情。
但是在我处理之后,我需要使用 createXWalkWebResourceResponse(String mimeType, String encoding, InputStream data) return XWalkWebResourceResponse。
然而这里出现了问题代码:
InputStream inputStream = new FileInputStream(filePath);
return createXWalkWebResourceResponse("video/*","UTF-8",inputStream);
此代码无效,播放器仍然获得网络视频而不是本地视频。
我想知道我哪里错了?我确定 read/write premission 已全部设置并且文件路径是真实的(我制作了一个媒体播放器演示来播放 mp4 文件并成功)。
我尝试通过getData()读取输入流,也成功了,说明xwalkwebresourceresponse有数据,但为什么数据不起作用?
请知道我哪里错了的人告诉我哪个地方wrong.i搜索了文档,网站和任何我可以搜索但仍然找不到解决方法的地方。
我是提问者。 我没有找到 answer.but 的关键我找到了一些其他的方法来解决这个问题。
当我需要使用 'shouldInterceptLoadRequest' 将 web 资源替换为本地资源时。我还可以设置一个网络服务器,使本地资源成为网络资源。这意味着可以通过网络访问本地资源。所以我不需要使用 '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'不能替代网络视频。希望有人能回答我。
(哦,我用 AndroidAsync 设置了网络服务器,AndroidAsync 可以通过 github 搜索)
英语不好。 希望能帮到你。