无法在Android Web view中查看视频

无法在Android Web view中查看视频,android,android-webview,android-mediaplayer,Android,Android Webview,Android Mediaplayer,我的网页使用html5视频标签嵌入视频文件 我有一个运行的嵌入式web服务器(NanoHTTPD),它从文件系统为我的文件提供服务。 除了点击播放HTML5视频外,其他一切都正常。 它会出现以下错误,并且视频不会播放 09-29 20:38:36.620: D/HTML5VideoInline(11532): HTML5VideoInline created 09-29 20:38:36.625: V/MediaPlayer(11532): setVideoSurfaceTexture 09

我的网页使用html5视频标签嵌入视频文件

我有一个运行的嵌入式web服务器(NanoHTTPD),它从文件系统为我的文件提供服务。 除了点击播放HTML5视频外,其他一切都正常。 它会出现以下错误,并且视频不会播放

  09-29 20:38:36.620: D/HTML5VideoInline(11532): HTML5VideoInline created
09-29 20:38:36.625: V/MediaPlayer(11532): setVideoSurfaceTexture
09-29 20:38:36.625: V/MediaPlayer-JNI(11532): reset
09-29 20:38:36.625: V/MediaPlayer(11532): reset
09-29 20:38:36.625: I/MediaPlayer(11532): path is null
09-29 20:38:36.640: D/MediaPlayer(11532): setDataSource IOException happend : 
09-29 20:38:36.640: D/MediaPlayer(11532): java.io.FileNotFoundException: No content provider: http://10.207.114.115:8765/SLC/Book3_html/Book3/book/BO/demo.mp4
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:713)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:617)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:954)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.webkit.HTML5VideoView.prepareDataCommon(HTML5VideoView.java:326)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.webkit.HTML5VideoView.prepareDataAndDisplayMode(HTML5VideoView.java:363)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.webkit.HTML5VideoInline.prepareDataAndDisplayMode(HTML5VideoInline.java:72)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.webkit.HTML5VideoViewProxy$VideoPlayer.play(HTML5VideoViewProxy.java:289)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:465)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.os.Looper.loop(Looper.java:137)
09-29 20:38:36.640: D/MediaPlayer(11532):   at android.app.ActivityThread.main(ActivityThread.java:5306)
09-29 20:38:36.640: D/MediaPlayer(11532):   at java.lang.reflect.Method.invokeNative(Native Method)
09-29 20:38:36.640: D/MediaPlayer(11532):   at java.lang.reflect.Method.invoke(Method.java:511)
09-29 20:38:36.640: D/MediaPlayer(11532):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-29 20:38:36.640: D/MediaPlayer(11532):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-29 20:38:36.640: D/MediaPlayer(11532):   at dalvik.system.NativeStart.main(Native Method)
09-29 20:38:36.640: D/MediaPlayer(11532): Couldn't open file on client side, trying server side
媒体播放器转到内容解析程序,该程序尝试仅加载内容方案的文件。我的URI是http方案

我的网络视图很简单

WebSettings webViewSettings = webView.getSettings();
    webViewSettings.setJavaScriptEnabled(true);
    //webViewSettings.setJavaScriptCanOpenWindowsAutomatically(false);
    //webViewSettings.setSupportMultipleWindows(true);
    webViewSettings.setPluginState(PluginState.ON);
    //webViewSettings.setMediaPlaybackRequiresUserGesture(false);
    webViewSettings.setAllowFileAccess(true);
    webView.setSoundEffectsEnabled(true);
    //webViewSettings.setSupportZoom(true);
    //WebView.setWebContentsDebuggingEnabled(true);

    webView.setWebViewClient(new CustomWebViewClient());
    webView.setWebChromeClient(mWebChromeClient);
干杯,
Saurav

您需要使用loadDataWithBaseURL

见此:

不要这样做:

mContentWebView.loadDataWithBaseURL(null, webViewContentString,
        "text/html", "UTF-8", null);
改为这样做:

//veryVeryVery important for playing the videos!
mContentWebView.loadDataWithBaseURL(theBaseUrl, webViewConentString,
        "text/html", "UTF-8", null);

似乎您在设置setDataSource()时遇到了问题,请确保您正在调用setDataSource(字符串路径)

setDataSource(String path)