我知道有很多關於此主題的問題,但他們都沒有幫助我:( 我想調用一個java方法在VideoView中播放視頻上傳遞參數WebView中,但我遇到了以下問題:在WebView中使用VideoView時的RuntimeException - Android
- 在activity_main,當我有內部的WebView VideoView標籤,然後我得到一個黑屏,基本上我的HTML是沒有得到加載
- 在activity_main時。我不使用VideoView但只有WebView才能顯示我的HTML,但是在使用VideoView vv = new VideoView(this)實例化VideoView時出現Uncaught Error 。
- 關於在WebView和VideoView標籤周圍使用相對或線性標籤不讓應用程序啓動。
有人可以幫助我完善我的activty_main.xml以獲得此代碼的工作?請在下面找到我的代碼片段:
我activity_main.xml中:
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/WebView123"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0" >
<!--On removing this VideoView, HTML getting displayed but Video not gettin launched
<VideoView android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</WebView>
我MainActivty.java
public class MainActivity extends Activity {
WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView) findViewById(R.id.WebView123);
WebSettings webSettings = browser.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);
webSettings.setAllowFileAccessFromFileURLs(true);
browser.setWebChromeClient(new WebChromeClient());
browser.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(browser , String url) {
return false;
}
});
MainActivity jsInterface = new MainActivity();
browser.addJavascriptInterface(jsInterface, "interfaces");
browser.loadUrl("file:///android_asset/index.html");
setContentView(browser);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@JavascriptInterface
public void videoPlayer(String identifer){
System.out.println("Hey I am in Here");
// 2nd Point - > VideoView videoHolder = new VideoView(this);
VideoView videoHolder = (VideoView) findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoHolder);
videoHolder.setMediaController(mc);
if(identifer.equals("1")){
String path = "android.resource://" + R.raw.intro;
videoHolder.setVideoURI(Uri.parse(path));
}
videoHolder.start();
videoHolder.requestFocus();
}
} //class end
我對的WebView HTML:
<button onClick="window.interfaces.videoPlayer('1');">Button</button>