이 주제와 관련하여 많은 질문이 있지만 그 중 누구도 나를 도왔습니다. ( JavaScript를 통해 매개 변수를 전달할 때 VideoView에서 비디오를 재생하기 위해 Java 메소드를 호출하려고합니다. 웹보기, 그러나 나는 다음과 같은 문제로 실행하고 있습니다 : activity_main에서WebView에서 VideoView를 사용할 때 RuntimeException이 발생합니다. -
- , 그때 나는 검은 색 빈 화면을 얻고 웹보기 내부 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
내 HTML :
<button onClick="window.interfaces.videoPlayer('1');">Button</button>